UDP通信协议

UDP :不可靠传输协议,但是TUP数据传输速度很快

UDP 通信分三种模式 :单播模式,组播模式,广播模式

UDP 单播通信的搭建步骤 :
1.创建UDP 的通信socket

		#include <sys/types.h>   /*   See NOTESw*/
		#include < sys/socket.h>
	   int socket ( int domain, int type ,int protocol1);

参数一:网络层协议 AF_INET IPv4 Internet protocols
参数二:传输层协议 SOCK_STREAM 数据流 TCP SOCK_DGRAM 数据报 UDP

参数三:属性 默认为 0
返回值:成功返回 new socket (新的网络通信文件描述符) 失败 error, -1
例子: 选择UDP协议
int socket(int domain,SOCK_DGRAM, int protocol);

2.绑定本地的网络地址

  #include <sys/types.h>          /* See NOTES */
  #include <sys/socket.h>

  int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 	

参数一:需要绑定的服务器socket
参数二:服务器的IP地址信息
参数三:服务器的IP地址信息的大小
返回值: 成功 0 失败 -1
在UDP通信注意࿱

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里是一个简单的UDP通信协议示例: 服务端代码: ```python import socket # 创建UDP套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定IP地址和端口号 server_address = ('127.0.0.1', 8888) server_socket.bind(server_address) print('UDP服务器已启动,等待客户端连接...') while True: # 接收客户端数据 data, client_address = server_socket.recvfrom(1024) print('接收到来自客户端{}的数据:{}'.format(client_address, data.decode())) # 发送响应数据 response_data = '我收到了你的消息:{}'.format(data.decode()) server_socket.sendto(response_data.encode(), client_address) ``` 客户端代码: ```python import socket # 创建UDP套接字 client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 发送数据到服务器 server_address = ('127.0.0.1', 8888) message = 'Hello, UDP!' client_socket.sendto(message.encode(), server_address) # 接收服务器响应数据 data, server_address = client_socket.recvfrom(1024) print('收到来自服务器{}的响应数据:{}'.format(server_address, data.decode())) # 关闭UDP套接字 client_socket.close() ``` 在此示例中,服务端和客户端都创建了UDP套接字。服务端使用`socket.bind()`方法绑定了IP地址和端口号,然后使用`socket.recvfrom()`方法接收客户端发送的数据,并使用`socket.sendto()`方法发送响应数据。客户端使用`socket.sendto()`方法发送数据到服务端,并使用`socket.recvfrom()`方法接收服务器响应数据。注意,UDP是无连接的,因此客户端不需要先连接服务器就可以发送数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值