Linux 下socket 的UDP例子

本文详细介绍了在Linux环境下如何实现UDP socket编程,包括创建socket、绑定端口、接收来自任意客户端的数据等关键步骤,是理解Linux下UDP通信的实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.接收发到本机端口的代码

servercore *vthis = (servercore*)arg;
//打?开?socket侦?听?
struct sockaddr_in local_addr; //local ip info
int sockfd;
local_addr.sin_addr.s_addr = INADDR_ANY;
local_addr.sin_family = AF_INET;
local_addr.sin_port = htons(BROADCAST_SERVER_PORT);
bzero(&local_addr.sin_zero,8);

if (-1 == (sockfd = socket(AF_INET,SOCK_DGRAM,0)))
{
    throw "servercore::recv_broadcast_thread : socket error";
}
if (-1 == bind(sockfd,(sockaddr*)&local_addr,sizeof(local_addr)))
{
    throw "servercore::recv_broadcast_thread : bind error";
}
socklen_t sockaddr_len = sizeof(sockaddr);
sockaddr_in remote_addr; //client ip info
size_t nrecv_size;
const int BUFSIZE = 1024;
char recv_buffer[BUFSIZE];
while (vthis->m_flag_exit != true)
{
    printf(".");
    fflush(stdout);
    nrecv_size = recvfrom(sockfd, recv_buffer, BUFSIZE, 0,(sockaddr*)&remote_addr,&sockaddr_len);
    if (nrecv_size > 0)
    {
        if (recv_buffer[0] == 0x11)
        {
            std::cout << "接?收?到?新?设?备?" << std::endl;

        }
    }
    
}
2.发送出去的UDP socket代码(待续…)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值