Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018-04-27 19:45
1341 查看
本文实例讲述了Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能。分享给大家供大家参考,具体如下:
由于目前工作的需要,需要在IPv4和IPv6两种网络模式下TCP和UDP的连接,要做到客户端发包,服务端收包。
前几天写了代码,但是把UDP的客户端和服务端使用TCP模式的代码了。今天在公司使用该工具的时候,发现了问题,忘记了UDP不需要验证。疏忽,疏忽。不过刚刚接触编程,可以原谅。
现在在家,已经把代码改好了。经测试可以使用。
先运行客户端:
再运行服务端:
客户端代码如下:
服务端代码:
希望本文所述对大家Python程序设计有所帮助。
由于目前工作的需要,需要在IPv4和IPv6两种网络模式下TCP和UDP的连接,要做到客户端发包,服务端收包。
前几天写了代码,但是把UDP的客户端和服务端使用TCP模式的代码了。今天在公司使用该工具的时候,发现了问题,忘记了UDP不需要验证。疏忽,疏忽。不过刚刚接触编程,可以原谅。
现在在家,已经把代码改好了。经测试可以使用。
先运行客户端:
python MiniClient.py host port mode(t4, t6, u4, u6)
再运行服务端:
python MiniServer.py host port mode(t4, t6, u4, u6)
客户端代码如下:
import socket, sys import time class MiniClient: h = '' p = '' m = '' def __init__(self, host, port, mode): self.h = host self.p = int(port) self.m = mode def tcpC4(self): tcpT4Client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print "Done........" tcpT4Client.connect((self.h, self.p)) print "TCP IPv4 TCP mode connecting..." while True: time.sleep(1) tcpT4Client.send('hello') print "hello send to Server" def udpC4(self): udpT4Client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) print "UDP TCP IPv4 Mode connecting..." while True: time.sleep(1) udpT4Client.sendto("hello", (self.h, self.p)) print "Hello Send to " , self.h , ' Use ', self.p, 'Port' def tcpC6(self): tcpT4Client = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) print "Done........" tcpT4Client.connect((self.h, self.p)) print "TCP IPv6 TCP mode connecting..." while True: time.sleep(1) tcpT4Client.send('hello') print "hello send to Server" def udpC6(self): udpU6Client = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM) print "UDP TCP IPv4 Mode connecting..." while True: time.sleep(1) udpU6Client.sendto("hello", (self.h, self.p)) print "Hello Send to " , self.h , ' Use ', self.p, 'Port' if __name__ == "__main__": x = MiniClient(sys.argv[1], sys.argv[2], sys.argv[3]) if x.m == 't4': x.tcpC4() elif x.m == 't6': x.tcpC6() elif x.m == 'u4': x.udpC4() else: x.udpC6()
服务端代码:
import socket, sys class MiniServer: h = '' p = '' m = '' def __init__(self, host, port, mode): self.h = host self.p = int(port) self.m = mode def serverT4(self): tcpT4Server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print "Server Socket Created......." tcpT4Server.bind((self.h, self.p)) print "Wating for connecting......." tcpT4Server.listen(5) while True: clientSock, clientaddr = tcpT4Server.accept() print "Connected from: ", clientSock.getpeername() clientSock.send('Congratulations........') while True: buf = clientSock.recv(1024) print buf #clientSock.close() def udpT4(self): udpT4Server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) print "UDP TCP IPv4 Mode Start....." udpT4Server.bind((self.h, self.p)) print "UDP Server Start" while True: udpT4Data, udpT4ServerInfo = udpT4Server.recvfrom(1024) print "Receive from ", udpT4ServerInfo, " and The Data send from The Client is :", udpT4Data def serverT6(self): tcpT6Server = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) print "Server Socket Created......." tcpT6Server.bind((self.h, self.p)) print "Wating for connecting......." tcpT6Server.listen(5) while True: clientSock, clientaddr = tcpT6Server.accept() print "Connected from: ", clientSock.getpeername() clientSock.send('Congratulations........') #clientSock.close() def udpT6(self): udpT6Server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) print "UDP TCP IPv4 Mode Start....." udpT6Server.bind((self.h, self.p)) print "UDP Server Start" while True: udpT4Data, udpT6ServerInfo = udpT6Server.recvfrom(1024) print "Receive from ", udpT6ServerInfo, " and The Data send from The Client is :", udpT4Data if __name__ == "__main__": x = MiniServer(sys.argv[1], sys.argv[2], sys.argv[3]) if x.m == 't4': x.serverT4() elif x.m == 't6': x.serverT6() elif x.m == 'u4': x.udpT4() else: x.udpT6()
希望本文所述对大家Python程序设计有所帮助。
相关文章推荐
- Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
- python---TCP UDP IPv4 IPv6 客户端和服务端的实现
- Python+Socket实现基于UDP协议的局域网广播功能示例
- 使用C#实现基于TCP和UDP协议的网络通信程序的基本示例
- Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
- Python基于socket模块实现UDP通信功能示例
- PHP基于socket实现的简单客户端和服务端通讯功能示例
- Python基于TCP实现会聊天的小机器人功能示例
- 基于Python的TCP服务端/客户端简单应用示例
- 实现采用客户/服务器通信模式,基于TCP网络通信协议的多客户端简单应用之案例分析
- golang实现简单的udp协议服务端与客户端示例
- 实现采用客户/服务器通信模式,基于TCP网络通信协议的多客户端简单应用
- PHP编程实现的TCP服务端和客户端功能示例
- Android编程实现TCP、UDP客户端通信功能示例
- 基于Python多线程的TCP客户端/服务端应用示例
- 基于TCP实现简单的客户端服务端的消息传递(二)
- Android上实现TCP&UDP的客户端和服务端
- Linux中使用C语言实现基于UDP协议的Socket通信示例
- python+soket实现UDP协议的客户/服务端中文聊天程序
- (TCP-over-UDP library):基于UDP协议之上实现通用、可靠、高效的TCP协议