Python網(wǎng)絡(luò)編程之TCP與UDP協(xié)議套接字用法示例
本文實(shí)例講述了Python網(wǎng)絡(luò)編程之TCP與UDP協(xié)議套接字用法。分享給大家供大家參考,具體如下:
TCP協(xié)議
服務(wù)器端:
#!/usr/bin/env python from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) ##創(chuàng)建服務(wù)器TCP套接字 tcpSerSock.bind(ADDR) tcpSerSock.listen(5) while True: print 'waiting for connection...' tcpCliSock, addr = tcpSerSock.accept() ##等待客戶(hù)端連接 print '...connected from:', addr while True: data = tcpCliSock.recv(BUFSIZ) ##監(jiān)聽(tīng)客戶(hù)端是否發(fā)送消息 if not data: break tcpCliSock.send('[%s] %s' % ( ctime(), data)) tcpCliSock.close() tcpSerSock.close()
客戶(hù)端:
#!/usr/bin/env python from socket import * HOST = 'localhost' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpCliSock = socket(AF_INET, SOCK_STREAM) ##創(chuàng)建客戶(hù)端TCP套接字 tcpCliSock.connect(ADDR) ##連接服務(wù)器 while True: data = raw_input('> ') if not data: break tcpCliSock.send(data) data = tcpCliSock.recv(BUFSIZ) ##監(jiān)聽(tīng)客戶(hù)端發(fā)送消息 if not data: break print data tcpCliSock.close()
UDP協(xié)議
服務(wù)器端:
#!/usr/bin/env python from socket import * from time import ctime HOST = '' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) udpSerSock = socket(AF_INET, SOCK_DGRAM) udpSerSock.bind(ADDR) while True: print 'waiting for message...' data, addr = udpSerSock.recvfrom(BUFSIZ)##監(jiān)聽(tīng)并接受客戶(hù)端發(fā)的消息 udpSerSock.sendto('[%s] %s' % ( ##給消息加上時(shí)間戳并返回給客戶(hù)端 ctime(), data), addr) print '...received from and returned to:', addr udpSerSock.close()
客戶(hù)端:
#!/usr/bin/env python from socket import * HOST = 'localhost' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) udpCliSock = socket(AF_INET, SOCK_DGRAM) while True: data = raw_input('> ') if not data: break udpCliSock.sendto(data, ADDR) ##給服務(wù)器發(fā)送數(shù)據(jù) data, ADDR = udpCliSock.recvfrom(BUFSIZ) ##客戶(hù)端接受帶時(shí)間戳的數(shù)據(jù) if not data: break print data udpCliSock.close()
更多關(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ì)有所幫助。
- 對(duì)python中基于tcp協(xié)議的通信(數(shù)據(jù)傳輸)實(shí)例講解
- Python Scapy隨心所欲研究TCP協(xié)議棧
- Python實(shí)現(xiàn)基于TCP UDP協(xié)議的IPv4 IPv6模式客戶(hù)端和服務(wù)端功能示例
- Python+Socket實(shí)現(xiàn)基于TCP協(xié)議的客戶(hù)與服務(wù)端中文自動(dòng)回復(fù)聊天功能示例
- Python實(shí)現(xiàn)TCP/IP協(xié)議下的端口轉(zhuǎn)發(fā)及重定向示例
- Python使用?TCP協(xié)議實(shí)現(xiàn)智能聊天機(jī)器人功能
- Python網(wǎng)絡(luò)編程之Python編寫(xiě)TCP協(xié)議程序的步驟

Python實(shí)現(xiàn)求一個(gè)集合所有子集的示例

Python使用Pandas庫(kù)實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的讀寫(xiě)

使用Python實(shí)現(xiàn)控制攝像頭的方法詳解

sublime3之內(nèi)網(wǎng)安裝python插件Anaconda的流程

python交互模式基礎(chǔ)知識(shí)點(diǎn)學(xué)習(xí)