python编程应用实例,Python编程实例
了解有关python网络编程的更多信息
网络编程的专利权应该属于Unix,语法类似于各种平台(如windows、Linux等)实现的独有特性。)和语言(如C,C,Python,Java等。).如果我知道Unix socket网络编程,我想我也知道其他形式的网络编程方法。这句话不算太严厉。准确的说,你知道套接字编程和网络编程的原理。不同的是,每个平台、每种语言都有自己的语法。我们可以直接灵活运用。
下面是用python实现的最基本的网络编程示例。这意味着依靠客户机-服务器体系结构来实现客户机和服务器之间的单向“数据分发”。我们用两种方法来实现它。一种是最原始的socket编程,另一种是使用python的面向对象包,实现第一种方法,目的是降低实现的透明度,方便快速开发。
请求:客户端输入数据并将其发送给服务器。服务器生成的封装数据响应客户端。因为socket编程有面向连接和非面向连接两种,分别对应TCP数据流和UDP数据消息。因此,我们将实现两个方法。
1.Python套接字编程
面向连接的TCP套接字编程;
#-*-编码:utf-8-*-
3从套接字导入*
从时间导入时间
#地址和端口
主机=
端口=21567
ADDR=(主机,端口)
# BuffSize
BUFSIZ=1024
#构建套接字
tpsersock=socket(af_inet,SOCK_STREAM)).
#绑定套接字
tcpSerSock.bind(ADDR)
#倾听5客户
tpsersock。听着.
尝试:
虽然正确:
打印“等待连接”
#构建客户端套接字
tcpCliSock,addr=tcpSerSock.accept(
打印。连接自: ,地址
#接受数据和处理
虽然正确:
DATA=tcpclisock.recv(Bufsiz))))))))))).
如果不是数据:
布莱克
tcpclisock . send([% s]% s %)ctime)、data))
#关闭客户端套接字
tcpCliSock.close(
EOFError除外,键盘中断:
tcpSerSock.close(
#-*-编码:utf-8-*-
从套接字导入*
#地址和端口
主机=127.0.0.1
端口=21567
ADDR=(主机,端口)
# BufferSize
BUFSIZ=1024
#构建套接字
tpclisocket=socket(af_inet,SOCK_STREAM)).
tcpCliSocket.connect(ADDR)
虽然正确:
data=raw_input( )
如果不是数据:
布莱克
#发送数据
Tcpclisocket.send(数据)
#接收数据
DATA=tcpclisocket.recv(Bufsiz))))).
如果不是数据:
布莱克
#显示数据
打印数据
tcpCliSocket.close(
无连接的UDP套接字编程
#-*-编码:utf-8-*-
从套接字导入*
从时间导入时间
#地址和端口
主机=
端口=8000
ADDR=(主机,端口)
# BufferSize
BUFFSIZE=1024
#构建套接字
upsersock=socket(af_inet,SOCK_DGRAM)).
#绑定套接字
udpSerSock.bind(ADDR)
尝试:
虽然正确:
打印“等待消息”
data,addr=UDP sersock . recvfrom(buffsize))。
“打印”从以下地址收到消息3360“数据”
upser sock . send to([% s]% s %)ctime)、data)、addr)))))))).
EOFError除外,键盘中断:
udpSerSock.close(
#-*-编码:utf-8-*-
从套接字导入*
#地址和端口
HOST=localhost
端口=8000
ADDR=(主机,端口)
# BufferSize
BUFSIZ=1024
#构建套接字
upclisock=socket(af_inet,SOCK_DGRAM)).
虽然正确:
data=raw_input( )
Udlisock.sendto(数据,ADDR)。
data=udpclisock . recvfrom(bufsiz))))))))).
如果不是数据:
布莱克
打印数据
udpCliSock.close(
2.基于SocketServer软件包的网络编程
#-*-编码:utf-8-*-
fromsocketserverimporttcpserverastcp,StreamRequestHandler为SRH
从时间导入时间
#地址和端口
主机=
端口=21567
ADDR=(主机,端口)
# BuffSize
BUFSIZ=1024
#构建请求处理程序
classmyrequestHandler(SRH):
defHandle(自身) :
打印。连接自: ,self.client_address
self . wfile . write([% s]% s)%)ctime),self.rfile.readline))
#构建TCP服务器
tpserv=TCP(addr,MyRequestHandler()))))))).
打印“等待连接”
#循环处理
tcpserv。服务% 20 _ % 20永远% 20% 25% 2028% 20% 25% 200 a % 20% 2023% 20% 25% 2020-% 25% 202 a-% 25% 2020和公元前7% 96%和7% a 0% 81% ef % BC % 9a % 20 utf-8% 20% 25% 2020-% 25% 202 a-% 25 200 a % 20 from % 20% 25% 2020% 20插座% 25% 2020和5% af % BC % 85%至5%25
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。