python使用插座创建tcp服务器和客户端

  

python使用插座创建tcp服务器和客户端。

  

服务器端为一个时间戳服务器,在接收到客户端发来的数据后,自动回复。

  

客户端,等待用户输入,回车后向服务器发送用户输入的内容。

  

分别在python2.7和python3.6下测试。在启动时需要先启动服务器端,在启动客户端。

  

<强> python2.7下

  

服务器端代码为

        utf - 8编码:      从套接字进口*   从时间进口ctime      打印(“=====================时间戳TCP服务器=====================");      主机=" #主机号为空白表示可以使用任何可用的地址。   端口=21567 #端口号   BUFSIZ=1024 #接收数据缓冲大小   ADDR=(主机、端口)      tcpSerSock=插座(AF_INET SOCK_STREAM) #创建TCP服务器套接字   tcpSerSock.bind (ADDR) #套接字与地址绑定   tcpSerSock.listen(5) #监听连接,同时连接请求的最大数目      而真正的:   打印('等待客户端的连接……)   tcpCliSock addr=tcpSerSock.accept() #接收客户端连接请求   打印(“取得连接:“,addr)      而真正的:   data=tcpCliSock.recv (BUFSIZ) #连续接收指定字节的数据,接收到的是字节数组   如果没有数据:#如果数据空白,则表示客户端退出,所以退出接收   打破   tcpCliSock。发送((% s) % s的% (ctime(),数据))#向客户端发送时间戳数据      tcpCliSock.close() #关闭与客户端的连接   tcpSerSock.close() #关闭服务器插座      之前      

客户端代码为

        utf - 8编码:      从套接字进口*      打印(“=====================TCP客户端=====================");      主机=' 127.0.0.1 ' #服务器ip地址,等价于localhost   端口=21567 #通信端口号   BUFSIZ=1024 #接收数据缓冲大小   ADDR=(主机、端口)      tcpCliSock=插座(AF_INET SOCK_STREAM) #创建客户端套接字   tcpCliSock.connect (ADDR) #发起TCP连接      而真正的:   data=https://www.yisu.com/zixun/raw_input('比;”)#接收用户输入   如果没有数据:#如果用户输入为空,直接回车就会发送“”,“”就是代表错误的   打破   tcpCliSock.send(数据)#客户端发送消息   data=tcpCliSock.recv (BUFSIZ) #接收回应消息,接收到的是字节数组   如果没有数据:#如果接收服务器信息失败,或没有消息回应   打破   打印(数据)#打印回应消息      tcpCliSock.close() #关闭客户端插座      之前      

<强> python3.6下

  

服务器端代码为

  

        utf - 8编码:      从套接字进口*   从时间进口ctime      打印(“=====================时间戳TCP服务器=====================");      主机=' 127.0.0.1 ' #主机号为空白表示可以使用任何可用的地址。   端口=21567 #端口号   BUFSIZ=1024 #接收数据缓冲大小   ADDR=(主机、端口)      tcpSerSock=插座(AF_INET SOCK_STREAM) #创建TCP服务器套接字   tcpSerSock.bind (ADDR) #套接字与地址绑定   tcpSerSock.listen(5) #监听连接,同时连接请求的最大数目      而真正的:   打印('等待客户端的连接……)   tcpCliSock addr=tcpSerSock.accept() #接收客户端连接请求   打印(“取得连接:“,addr)      而真正的:   data=tcpCliSock.recv (BUFSIZ) #连续接收指定字节的数据,接收到的是字节数组   如果没有数据:#如果数据空白,则表示客户端退出,所以退出接收   打破   # tcpCliSock。发送((% s) % s的%(字节(ctime (),“utf - 8”),数据))   tcpCliSock。发送(字节((% s) % s的% (ctime (), data.decode (utf - 8)),“utf - 8”)) #向客户端发送时间戳数据,必须发送字节数组      tcpCliSock.close() #关闭与客户端的连接   tcpSerSock.close() #关闭服务器插座      之前      

客户端代码为

        utf - 8编码:      从套接字进口*      打印(“=====================TCP客户端=====================");      主机=' 127.0.0.1 ' #服务器ip地址,等价于localhost   端口=21567 #通信端口号   BUFSIZ=1024 #接收数据缓冲大小   ADDR=(主机、端口)      tcpCliSock=插座(AF_INET SOCK_STREAM) #创建客户端套接字   tcpCliSock.connect (ADDR) #发起TCP连接      而真正的:   data=https://www.yisu.com/zixun/input('比;”)#接收用户输入   如果没有数据:#如果用户输入为空,直接回车就会发送“”,“”就是代表错误的   打破   tcpCliSock。发送(字节(数据、“utf - 8”)) #客户端发送消息,必须发送字节数组   data=tcpCliSock.recv (BUFSIZ) #接收回应消息,接收到的是字节数组   如果没有数据:#如果接收服务器信息失败,或没有消息回应   打破   print (data.decode (utf - 8)) #打印回应消息,或者str(数据、“utf - 8”)      tcpCliSock.close() #关闭客户端插座   

python使用插座创建tcp服务器和客户端