Python网络编程之TCP与UDP协议套接字用法示例
本文实例讲述了Python网络编程之TCP与UDP协议套接字用法。分享给大家供大家参考,具体如下:
TCP协议
服务器端:
#!/usr/bin/envpython
fromsocketimport*
fromtimeimportctime
HOST=''
PORT=21567
BUFSIZ=1024
ADDR=(HOST,PORT)
tcpSerSock=socket(AF_INET,SOCK_STREAM)##创建服务器TCP套接字
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
whileTrue:
print'waitingforconnection...'
tcpCliSock,addr=tcpSerSock.accept()##等待客户端连接
print'...connectedfrom:',addr
whileTrue:
data=tcpCliSock.recv(BUFSIZ)##监听客户端是否发送消息
ifnotdata:
break
tcpCliSock.send('[%s]%s'%(
ctime(),data))
tcpCliSock.close()
tcpSerSock.close()
客户端:
#!/usr/bin/envpython
fromsocketimport*
HOST='localhost'
PORT=21567
BUFSIZ=1024
ADDR=(HOST,PORT)
tcpCliSock=socket(AF_INET,SOCK_STREAM)##创建客户端TCP套接字
tcpCliSock.connect(ADDR)##连接服务器
whileTrue:
data=raw_input('>')
ifnotdata:
break
tcpCliSock.send(data)
data=tcpCliSock.recv(BUFSIZ)##监听客户端发送消息
ifnotdata:
break
printdata
tcpCliSock.close()
UDP协议
服务器端:
#!/usr/bin/envpython
fromsocketimport*
fromtimeimportctime
HOST=''
PORT=21567
BUFSIZ=1024
ADDR=(HOST,PORT)
udpSerSock=socket(AF_INET,SOCK_DGRAM)
udpSerSock.bind(ADDR)
whileTrue:
print'waitingformessage...'
data,addr=udpSerSock.recvfrom(BUFSIZ)##监听并接受客户端发的消息
udpSerSock.sendto('[%s]%s'%(##给消息加上时间戳并返回给客户端
ctime(),data),addr)
print'...receivedfromandreturnedto:',addr
udpSerSock.close()
客户端:
#!/usr/bin/envpython
fromsocketimport*
HOST='localhost'
PORT=21567
BUFSIZ=1024
ADDR=(HOST,PORT)
udpCliSock=socket(AF_INET,SOCK_DGRAM)
whileTrue:
data=raw_input('>')
ifnotdata:
break
udpCliSock.sendto(data,ADDR)##给服务器发送数据
data,ADDR=udpCliSock.recvfrom(BUFSIZ)##客户端接受带时间戳的数据
ifnotdata:
break
printdata
udpCliSock.close()
更多关于Python相关内容可查看本站专题:《PythonSocket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。