TCP协议
UDP协议
TCP是面向连接的协议,需要在传输数据之前先进行三次握手建立连接。而UDP是无连接的协议,可以直接发送数据,无需事先建立连接。
TCP提供了数据传输的确认和重传机制,能保证数据按照发送的顺序进行接收,并且对丢包有一定的检测和恢复能力。而UDP则没有这样的保证,可能会导致数据的丢失、重复或乱序。
由于TCP的可靠性和确认机制,其处理速度相对较慢。而UDP由于其简单性,处理速度较快,适用于实时应用如音频和视频流。
P的首部开销比UDP的首部开销大。TCP头部固定20字节,而UDP头部固定8字节。
python实现网络编程的基本模块-socket模块
使用python实现tcp协议
import socket
sk = socket.socket()
sk.bind(("127.0.0.1",9001))
sk.listen()
while True:
print("正在等待连接")
coon,addr = sk.accept()
msg = coon.recv(1024).decode("utf-8")
print(msg)
coon.send("我是服务器".encode("utf-8"))
coon.close()
import socket
import time
sk = socket.socket()
sk.connect(("127.0.0.1",9001))
sk.send("我是客户端".encode("utf-8"))
msg = sk.recv(1024).decode("utf-8")
print(msg)
time.sleep(1)
print("通信结束")
sk.close()
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.bind(("127.0.0.1",9001))
msg,addr = sk.recvfrom(1024)
print(msg.decode("utf-8"))
sk.sendto("我是服务器".encode("utf-8"),addr)
import socket
import time
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.sendto("我是客户端".encode("utf-8"),("127.0.0.1",9001))
msg = sk.recv(1024).decode("utf-8")
print(msg)
sk.close()
#:可以在此基础上进行修改,以实现各种功能
import socket
import time
import random
while True:
sk = socket.socket(type=socket.SOCK_DGRAM)
s = random.randint(1,10)
sk.sendto("我是客户端{}".format(s).encode("utf-8"),("127.0.0.1",9001))
msg = sk.recv(1024).decode("utf-8")
time.sleep(2)
print(msg)
对客户端进行循环操作,使其没两秒发送一次消息