TCP与UDP的区别:
TCP速度慢,稳定。UDP速度快,不稳定,易丢数据。
UDP:
#客户端代码
>>> import socket
>>> ClientSocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#创建套接字
>>> sendtoAddr=("192.168.1.111",7561)#接收方的地址,端口
>>> ClientSocket.sendto(b"hello,python",sendtoAddr)#发送数据
12
#服务端方代码
>>> import socket
>>> ServerSocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
>>> Addr=("",7561) #本地地址,端口,地址通常不用谢
>>> ServerSocket.bind(Addr)# 绑定本地地址,端口号
>>> Data,Addr=ServerSocket.recvfrom(1024) #接收到的数据和地址
>>> Data
b'hello,python'
>>> Addr
('192.168.1.104',55598)
TCP:
#客户端代码
>>> import socket
>>> ClientSocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #创建套接字
>>> SendtoAddr=("192.168.1.106",8899) #服务器端地址
>>> ClientSocket.connect(SendtoAddr) #与服务器进行连接
>>> ClientSocket.send(b"hello,python") #发送数据
12
>>> RecvData=ClientSocket.recv(1024) #接收数据
>>> print(RecvData)
b'Get Information'
>>> ClientSocket.close()
#服务器端代码
In [1]: import socket
In [2]: ServerSocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
In [3]: Addr=("",8899)
In [4]: ServerSocket.bind(Addr) #绑定
In [5]: ServerSocket.listen(5) #监听,参数5可以是其他数字,在Linux中没有影响,Mac中有影响
In [6]: ClientSocket,ClientInfo=ServerSocket.accept() #等待客户端的连接,连接后返回一个客户端套接字对象
In [7]: RecvData=ClientSocket.recv(1024)#接收来自客户端的数据
In [8]: print(RecvData)
b'hello,python'
In [9]: ClientSocket.send(b"Get Information") #向客户端发送数据
Out[9]: 15
In [10]: ServerSocket.close()