Python基于socket實(shí)現(xiàn)簡(jiǎn)單的即時(shí)通訊功能示例
本文實(shí)例講述了Python基于socket實(shí)現(xiàn)簡(jiǎn)單的即時(shí)通訊功能。分享給大家供大家參考,具體如下:
客戶(hù)端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)聽(tīng)的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);
#阻塞在這里,等待接收客戶(hù)端的數(shù)據(jù)
client_socket,addr = server.accept()
print "[*] Accept connection from:%s:%d" % (addr[0],addr[1])
#創(chuàng)建一個(gè)線(xiàn)程
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)容可查看本站專(zhuān)題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- 利用Python中SocketServer 實(shí)現(xiàn)客戶(hù)端與服務(wù)器間非阻塞通信
- python網(wǎng)絡(luò)編程之TCP通信實(shí)例和socketserver框架使用例子
- Python采用socket模擬TCP通訊的實(shí)現(xiàn)方法
- python實(shí)現(xiàn)簡(jiǎn)單socket通信的方法
- python socket多線(xiàn)程通訊實(shí)例分析(聊天室)
- Python socket網(wǎng)絡(luò)編程TCP/IP服務(wù)器與客戶(hù)端通信
- Python網(wǎng)絡(luò)編程使用select實(shí)現(xiàn)socket全雙工異步通信功能示例
- python通過(guò)socket實(shí)現(xiàn)多個(gè)連接并實(shí)現(xiàn)ssh功能詳解
- Python與Java間Socket通信實(shí)例代碼
- 結(jié)合Python的SimpleHTTPServer源碼來(lái)解析socket通信
- Python實(shí)現(xiàn)socket非阻塞通訊功能示例
相關(guān)文章
python使用requests設(shè)置讀取超時(shí)時(shí)間
在Python中,使用requests庫(kù)進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí),可以通過(guò)設(shè)置?timeout參數(shù)來(lái)指定讀取超時(shí)時(shí)間,本文就來(lái)介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
Django微信小程序后臺(tái)開(kāi)發(fā)教程的實(shí)現(xiàn)
這篇文章主要介紹了Django微信小程序后臺(tái)開(kāi)發(fā)教程的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
python使用PythonMagick將jpg圖片轉(zhuǎn)換成ico圖片的方法
這篇文章主要介紹了python使用PythonMagick將jpg圖片轉(zhuǎn)換成ico圖片的方法,涉及PythonMagick模塊操作圖片的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
numpy.transpose對(duì)三維數(shù)組的轉(zhuǎn)置方法
下面小編就為大家分享一篇numpy.transpose對(duì)三維數(shù)組的轉(zhuǎn)置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
Python實(shí)現(xiàn)接受任意個(gè)數(shù)參數(shù)的函數(shù)方法
下面小編就為大家分享一篇Python實(shí)現(xiàn)接受任意個(gè)數(shù)參數(shù)的函數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
python實(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ù)組的問(wèn)題
今天遇到一個(gè)小小的問(wèn)題,是關(guān)于numpy創(chuàng)建空數(shù)組,今天特地整理了這篇文章,文中作出了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05

