UDP网络连接的书写

UDP网络连接的书写

服务器端

socket端口申请

int soketfd_ = socket(AF_INEF,0,SOCK_DGRM,0);
if(soket < 0){
  std::cout << "socket fail" << std::endl;
}

进行创建socket的端口号,SOCK_DGRM为数据报,这里决定是否为UDP或者是TCP协议的socket端口号决定操作

image-20230405130044537

bind绑定

struct sockaddr_in local;
bzero(&local,sizeof(local));
local.sin_family = AF_INT;
local.sin_port = htons(port_);
local.sin_addr.s_addr = ip_.empty() ? htonl(INADDR_ANY) : inet_addr(ip_.c_str()); 
bind(sockfd_,(struct sockaddr*)&alocal,sizeof(local));

绑定之后,可以使用目前创建的socket的端口号进行数据报的传输。

image-20230405131308372

利用端口

使用read与write,进行端口的写,这里的执行是全双工的操作。

下面的全都是

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9TqO4G0G-1680675075662)(/Users/zhourenxi/Library/Application Support/typora-user-images/image-20230405133406424.png)]

客户端

socket端口申请

int soketfd_ = socket(AF_INEF,0,SOCK_DGRM,0);
if(soket < 0){
  std::cout << "socket fail" << std::endl;
}

填写服务端信息

struct sockaddr_in server;
 bzero(&server, sizeof server);
server.sin_family = AF_INET;
server.sin_port = htons(server_port);
server.sin_addr.s_addr = inet_addr(server_ip.c_str());

客户端不需要进行bind,可能其他的client使用这个端口进行占用造成数据的相关的问题。而且系统会自动进行分配端口号与ip进行绑定。

利用端口

使用read与write,进行端口的写,这里的执行是全双工的操作。

下面的全都是
在这里插入图片描述

后面基本上与服务器端端使用方法相同。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值