首页 > 编程 > Python > 正文

Python网络编程之TCP与UDP协议套接字用法示例

2020-01-04 15:59:19
字体:
来源:转载
供稿:网友

本文实例讲述了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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表