[网络编程]-2.TCP、UDP和本地套接字编程差异

1.服务端差异。

TCP、UDP和本地套接字的服务器端都需要bind。TCP和UDP是因为要bind到众所周知的端口上,而本地套接字的服务器端是因为要bind到系统绝对路径下的某个文件上。​​

2.客户端差异。

TCP和UDP客户端都不需要bind端口,本地套接字客户端需要bind。因为TCP的connect会三次握手且内核会自动生成本地端口和带上本地IP,UDP的sendto有目标地址和目标端口,内核会自动生成本地端口和带上本地IP,所以TCP和UDP都不用bind调用。但是本地套接字客户端只能通过bind到同一个系统绝对路径文件才能发送出去,所以需要bind调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UDP是一种无连接的协议,其套接字编程相对于TCP会更加简单。以下是一个简单的UDP套接字编程实验,通过UDP协议实现客户端和服务器端之间的通信。 1. 编写服务器端代码 ```python import socket # 创建UDP套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定IP地址和端口号 server_address = ('localhost', 8888) server_socket.bind(server_address) print('服务器已启动,等待客户端连接...') while True: # 接收客户端发送的数据 data, client_address = server_socket.recvfrom(1024) print('收到客户端发来的数据:', data.decode()) # 发送响应给客户端 response = '你好,我是服务器!' server_socket.sendto(response.encode(), client_address) ``` 2. 编写客户端代码 ```python import socket # 创建UDP套接字 client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 服务器地址和端口号 server_address = ('localhost', 8888) while True: # 发送数据到服务器 message = input('请输入要发送的数据:') client_socket.sendto(message.encode(), server_address) # 接收服务器响应 data, server_address = client_socket.recvfrom(1024) print('收到服务器发来的数据:', data.decode()) ``` 3. 运行服务器端和客户端代码,测试通信 在终端中依次运行以下命令: ```shell python server.py python client.py ``` 在客户端中输入要发送的数据,服务器端会收到客户端发送的数据并进行响应,客户端会收到服务器端的响应。通过UDP协议实现了简单的客户端和服务器端之间的通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值