Python基于socket實(shí)現(xiàn)簡單的即時(shí)通訊功能示例
本文實(shí)例講述了Python基于socket實(shí)現(xiàn)簡單的即時(shí)通訊功能。分享給大家供大家參考,具體如下:
客戶端tcpclient.py
# -*- coding: utf-8 -*- import socket import threading # 目標(biāo)地址IP/URL及端口 target_host = "127.0.0.1" target_port = 9999 # 創(chuàng)建一個(gè)socket對(duì)象 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 連接主機(jī) client.connect((target_host,target_port)) def handle_send(): while True: content = raw_input() client.send(content) def handle_receive(): while True: response = client.recv(4096) print response send_handler = threading.Thread(target=handle_send,args=()) send_handler.start() receive_handler = threading.Thread(target=handle_receive,args=()) receive_handler.start()
服務(wù)器端tcpserver.py
# -*- coding: utf-8 -*- import socket import threading # 監(jiān)聽的IP及端口 bind_ip = "127.0.0.1" bind_port = 9999 #socket 服務(wù)器初始化 server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server.bind((bind_ip,bind_port)) server.listen(5) print "[*] Listening on %s:%d" % (bind_ip,bind_port) # 定義函數(shù)handle_client,輸入?yún)?shù)client_socket def handle_client(): while True: request = client_socket.recv(1024) print "[*] Received:%s" % request def handle_send(): while True: content = raw_input() client_socket.send(content); #阻塞在這里,等待接收客戶端的數(shù)據(jù) client_socket,addr = server.accept() print "[*] Accept connection from:%s:%d" % (addr[0],addr[1]) #創(chuàng)建一個(gè)線程 client_handler = threading.Thread(target=handle_client,args=()) client_handler.start() send_handler = threading.Thread(target=handle_send,args=()) send_handler.start()
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- 利用Python中SocketServer 實(shí)現(xiàn)客戶端與服務(wù)器間非阻塞通信
- python網(wǎng)絡(luò)編程之TCP通信實(shí)例和socketserver框架使用例子
- Python采用socket模擬TCP通訊的實(shí)現(xiàn)方法
- python實(shí)現(xiàn)簡單socket通信的方法
- python socket多線程通訊實(shí)例分析(聊天室)
- Python socket網(wǎng)絡(luò)編程TCP/IP服務(wù)器與客戶端通信
- Python網(wǎng)絡(luò)編程使用select實(shí)現(xiàn)socket全雙工異步通信功能示例
- python通過socket實(shí)現(xiàn)多個(gè)連接并實(shí)現(xiàn)ssh功能詳解
- Python與Java間Socket通信實(shí)例代碼
- 結(jié)合Python的SimpleHTTPServer源碼來解析socket通信
- Python實(shí)現(xiàn)socket非阻塞通訊功能示例
相關(guān)文章
python使用requests設(shè)置讀取超時(shí)時(shí)間
在Python中,使用requests庫進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí),可以通過設(shè)置?timeout參數(shù)來指定讀取超時(shí)時(shí)間,本文就來介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11Django微信小程序后臺(tái)開發(fā)教程的實(shí)現(xiàn)
這篇文章主要介紹了Django微信小程序后臺(tái)開發(fā)教程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06python使用PythonMagick將jpg圖片轉(zhuǎn)換成ico圖片的方法
這篇文章主要介紹了python使用PythonMagick將jpg圖片轉(zhuǎn)換成ico圖片的方法,涉及PythonMagick模塊操作圖片的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03numpy.transpose對(duì)三維數(shù)組的轉(zhuǎn)置方法
下面小編就為大家分享一篇numpy.transpose對(duì)三維數(shù)組的轉(zhuǎn)置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python實(shí)現(xiàn)接受任意個(gè)數(shù)參數(shù)的函數(shù)方法
下面小編就為大家分享一篇Python實(shí)現(xiàn)接受任意個(gè)數(shù)參數(shù)的函數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04python實(shí)現(xiàn)測(cè)試工具(一)——命令行發(fā)送get請(qǐng)求
這篇文章主要介紹了python如何實(shí)現(xiàn)命令行發(fā)送get請(qǐng)求,幫助大家更好的利用python進(jìn)行測(cè)試工作,感興趣的朋友可以了解下2020-10-10淺談Python numpy創(chuàng)建空數(shù)組的問題
今天遇到一個(gè)小小的問題,是關(guān)于numpy創(chuàng)建空數(shù)組,今天特地整理了這篇文章,文中作出了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05