【2014-04-02】【转】Python的TCP/UDP通讯

📅 2026/8/18 13:28:19
【2014-04-02】【转】Python的TCP/UDP通讯
[历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2014-04-02 标题【转】Python的TCP/UDP通讯分类编程 / python jython 标签python jython·TCPUDP【转】Python的TCP/UDP通讯[Python]Socket的TCP/UDP应用UDP小实例server.pyclient.pyTCP小例子server.py代码client.py代码本文转自【 http://www.cnblogs.com/codeio/archive/2011/08/31/2160408.html 】[Python]Socket的TCP/UDP应用Socket是应用层与TCP/IP协议簇通信的中间层可以看作提供给应用层所用的接口。Python中主要用socket.socket(]])方法来创建一个socket实例相关参数说明family- 套接字地址结构有AF_INET、AF_INET6和AF_UNIX。type- 数据传输的类型广泛使用的有SOCK_STREAM(数据流)和SOCK_DGRAM(数据报文)SOCK_STREAM是面向连接的SOCK_DGRAM是无连接的如ATM和TCP协议属于SOCK_STREAM类型而IRDA和UDP协议属于SOCK_DGRAM类型。proto- 指明所要接收的协议包。UDP小实例server.pyimportsocket serversocket.socket(socket.AF_INET,socket.SOCK_DGRAM)server.bind((127.0.0.1,17800))print(udp server start)whileTrue:data,addrserver.recvfrom(1024)textstr(data,encodingutf-8)print(address%s data%s%(addr,text))iftextquit:breakprint(udp server finish)server.close()client.pyimportsocket clientsocket.socket(socket.AF_INET,socket.SOCK_DGRAM)print(udp client start)whileTrue:datainput(please input content:)client.sendto(bytes(data,utf-8),(127.0.0.1,17800))ifdataquit:breakprint(udp client finish)client.close()先运行server.py再运行client.py运行结果TCP小例子server.py代码importsocket serversocket.socket(socket.AF_INET,socket.SOCK_STREAM)server.bind((127.0.0.1,17800))server.listen(5)print(tcp server start)whileTrue:conn,addrserver.accept()print(client connect, address: ,addr)conn.send(bwelcome to server)dataconn.recv(1024)print(str(data,encodingutf-8))conn.close()print(tcp server finish)server.close()client.py代码importsocketprint(udp client1 start)client1socket.socket(socket.AF_INET,socket.SOCK_STREAM)client1.connect((127.0.0.1,17800))data1client1.recv(1024)print(str(data1,encodingutf-8))client1.send(bI am client1)client1.close()print(udp client1 finish)print(udp client2 start)client2socket.socket(socket.AF_INET,socket.SOCK_STREAM)client2.connect((127.0.0.1,17800))data2client2.recv(1024)print(str(data2,encodingutf-8))client2.send(bI am client2)client2.close()print(udp client2 finish)先运行server.py再运行client.py运行结果