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程序设计有所帮助。