python网络编程-TCP与UDP

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()

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章