Python網路編程之TCP與UDP協議通訊端用法樣本,pythonudp
本文執行個體講述了Python網路編程之TCP與UDP協議通訊端用法。分享給大家供大家參考,具體如下:
TCP協議
伺服器端:
#!/usr/bin/env pythonfrom socket import *from time import ctimeHOST = ''PORT = 21567BUFSIZ = 1024ADDR = (HOST, PORT)tcpSerSock = socket(AF_INET, SOCK_STREAM) ##建立伺服器TCP通訊端tcpSerSock.bind(ADDR)tcpSerSock.listen(5)while True: print 'waiting for connection...' tcpCliSock, addr = tcpSerSock.accept() ##等待用戶端串連 print '...connected from:', addr while True: data = tcpCliSock.recv(BUFSIZ) ##監聽用戶端是否發送訊息 if not data: break tcpCliSock.send('[%s] %s' % ( ctime(), data)) tcpCliSock.close()tcpSerSock.close()
用戶端:
#!/usr/bin/env pythonfrom socket import *HOST = 'localhost'PORT = 21567BUFSIZ = 1024ADDR = (HOST, PORT)tcpCliSock = socket(AF_INET, SOCK_STREAM) ##建立用戶端TCP通訊端tcpCliSock.connect(ADDR) ##串連伺服器while True: data = raw_input('> ') if not data: break tcpCliSock.send(data) data = tcpCliSock.recv(BUFSIZ) ##監聽用戶端發送訊息 if not data: break print datatcpCliSock.close()
UDP協議
伺服器端:
#!/usr/bin/env pythonfrom socket import *from time import ctimeHOST = ''PORT = 21567BUFSIZ = 1024ADDR = (HOST, PORT)udpSerSock = socket(AF_INET, SOCK_DGRAM)udpSerSock.bind(ADDR)while True: print 'waiting for message...' data, addr = udpSerSock.recvfrom(BUFSIZ)##監聽並接受用戶端發的訊息 udpSerSock.sendto('[%s] %s' % ( ##給訊息加上時間戳記並返回給用戶端 ctime(), data), addr) print '...received from and returned to:', addrudpSerSock.close()
用戶端:
#!/usr/bin/env pythonfrom socket import *HOST = 'localhost'PORT = 21567BUFSIZ = 1024ADDR = (HOST, PORT)udpCliSock = socket(AF_INET, SOCK_DGRAM)while True: data = raw_input('> ') if not data: break udpCliSock.sendto(data, ADDR) ##給伺服器發送資料 data, ADDR = udpCliSock.recvfrom(BUFSIZ) ##用戶端接受帶時間戳記的資料 if not data: break print dataudpCliSock.close()