Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例

  

本文实例讲述了Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能。分享给大家供大家参考,具体如下:

  

由于目前工作的需要,需要在IPv4和IPv6两种网络模式下TCP和UDP的连接,要做到客户端发包,服务端收包。

  

前几天写了代码,但是把UDP的客户端和服务端使用TCP模式的代码了。今天在公司使用该工具的时候,发现了问题,忘记了UDP不需要验证。疏忽,疏忽。不过刚刚接触编程,可以原谅。

  

现在在家,已经把代码改好了。经测试可以使用。

  

<强>先运行客户端:

        python MiniClient。py主机端口模式(t4, t6、u4 u6)      之前      

<强>再运行服务端:

        python MiniServer。py主机端口模式(t4, t6、u4 u6)      之前      

<强>客户端代码如下:

        进口套接字,系统   导入的时间   类MiniClient:   h="   p="   m="   def __init__(自我、主机、端口模式):   自我。h=主机   自我。p=int(端口)   自我。m=模式   def tcpC4(自我):   tcpT4Client=socket.socket(插座。AF_INET socket.SOCK_STREAM)   打印”........”   tcpT4Client.connect(自我。h, self.p))   打印“TCP IPv4 TCP连接方式……”   而真正的:   time . sleep (1)   tcpT4Client.send(“你好”)   打印“你好”发送到服务器   def udpC4(自我):   udpT4Client=socket.socket(插座。AF_INET socket.SOCK_DGRAM)   打印”UDP TCP IPv4模式连接…”   而真正的:   time . sleep (1)   udpT4Client。sendto (“hello”,(自我。h, self.p))   打印“你好”发送到,自我。h,“使用”,自我。p,“端口”   def tcpC6(自我):   tcpT4Client=socket.socket(插座。AF_INET6 socket.SOCK_STREAM)   打印”........”   tcpT4Client.connect(自我。h, self.p))   打印“TCP IPv6 TCP连接方式……”   而真正的:   time . sleep (1)   tcpT4Client.send(“你好”)   打印“你好”发送到服务器   def udpC6(自我):   udpU6Client=socket.socket(插座。AF_INET6 socket.SOCK_DGRAM)   打印”UDP TCP IPv4模式连接…”   而真正的:   time . sleep (1)   udpU6Client。sendto (“hello”,(自我。h, self.p))   打印“你好”发送到,自我。h,“使用”,自我。p,“端口”   if __name__==癬_main__”:   x=MiniClient (sys。sys argv [1]。sys.argv argv [2], [3])   如果x。m==皌4”:   x.tcpC4 ()   elif x。m==皌6”:   x.tcpC6 ()   elif x。m==淇臁?   x.udpC4 ()   其他:   x.udpC6 ()      之前      

<>强服务端代码:

        进口套接字,系统   类MiniServer:   h="   p="   m="   def __init__(自我、主机、端口模式):   自我。h=主机   自我。p=int(端口)   自我。m=模式   def serverT4(自我):   tcpT4Server=socket.socket(插座。AF_INET socket.SOCK_STREAM)   打印”服务器套接字创建.......”   tcpT4Server.bind(自我。h, self.p))   打印“连接.......等候”   tcpT4Server.listen (5)   而真正的:   clientSock clientaddr=tcpT4Server.accept ()   打印”连接从:“clientSock.getpeername ()   clientSock.send(“恭喜........”)   而真正的:   buf=clientSock.recv (1024)   打印缓冲区   # clientSock.close ()   def udpT4(自我):   udpT4Server=socket.socket(插座。AF_INET socket.SOCK_DGRAM)   打印”UDP TCP IPv4模式开始.....”   udpT4Server.bind(自我。h, self.p))   打印“UDP服务器启动”   而真正的:   udpT4Data udpT4ServerInfo=udpT4Server.recvfrom (1024)   udpT4ServerInfo打印“收到”,“从客户机发送的数据是:“,udpT4Data   def serverT6(自我):   tcpT6Server=socket.socket(插座。AF_INET6 socket.SOCK_STREAM)   打印”服务器套接字创建.......”   tcpT6Server.bind(自我。h, self.p))   打印“连接.......等候”   tcpT6Server.listen (5)   而真正的:   clientSock clientaddr=tcpT6Server.accept ()   打印”连接从:“clientSock.getpeername ()   clientSock.send(“恭喜........”)   # clientSock.close ()   def udpT6(自我):   udpT6Server=socket.socket(插座。AF_INET socket.SOCK_DGRAM)   打印”UDP TCP IPv4模式开始.....”   udpT6Server.bind(自我。h, self.p))   打印“UDP服务器启动”   而真正的:   udpT4Data udpT6ServerInfo=udpT6Server.recvfrom (1024)   udpT6ServerInfo打印“收到”,“从客户机发送的数据是:“,udpT4Data   if __name__==癬_main__”:   x=MiniServer (sys。sys argv [1]。sys.argv argv [2], [3])   如果x。m==皌4”:   x.serverT4 ()   elif x。m==皌6”:   x.serverT6 ()   elif x。m==淇臁?   x.udpT4 ()   其他:   x.udpT6 ()      

Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例