互联网编程之初步 TCP和UPD的比较

TCP 服务器端的工作流程

1 导入socket包

2 创建socket对象 server_socket

3 server_socket绑定ip和端口

4 设置server_socket监听数量

5 接收客户连接

6 对客户端接受和发送信息

# 导入包
import socket
# 创建对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定
server_socket.bind(('10.20.154.60', 6667))
# 监听数量
server_socket.listen(5)
# 接收连接
conn, addr = server_socket.accept()
# 发送和接收数据
while True:
    # 接收数据,会暂停,会阻塞程序,1024是缓冲值
    data = conn.recv(1024)
    print('客户端说:', data.decode())

    # 发送数据给客户端
    conn.send('客户端,你好!'.encode())

  

            

UDP 服务器端的工作流程

1 导入socket包

2 创建socket对象 server_socket

3 server_socket绑定ip和端口

4 对客户端接受和发送信息

 

# UDP 服务端
import socket
# 1 创建UDP协议的socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2 绑定ip和port
server_socket.bind(('10.20.154.60', 6669))
print('服务端已启动!')
# 3 接收和发送数据
while True:
    # 接收数据:会阻塞程序
    data, addr = server_socket.recvfrom(1024) 
    print('客户端发过来的数据:', data.decode(), addr)
    # 发送数据
    server_socket.sendto('收到'.encode(),addr)

  
对比两者在流程上,UDP减少了监听数量和接收客户端的连接。

在代码上,TCP 是SOCK_STREAM,而UDP是SOCK_DGRAM。向客户端发送消息时,UDP需要填写addr而TCP不需要



posted @ 2020-11-24 17:53  清水湾的水  阅读(155)  评论(0)    收藏  举报