本文實例講述了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()更多關于Python相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答