Linux下 面向连接的 UDP通信

本文介绍了如何在Linux下实现面向连接的UDP通信。通过详细解析UDP Server和Client的编程步骤,包括socket创建、bind操作、connect连接、数据收发等。示例程序展示了如何处理错误并确保服务程序不重复运行,同时解释了使用connect()带来的好处,如在发送数据时能及时获取错误信息。

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

UDP Server程序

1、编写UDP Server程序的步骤
 (1)使用socket()来建立一个UDP socket,第二个参数为SOCK_DGRAM。  
 (2)初始化sockaddr_in结构的变量,并赋值

 这里使用“2030”作为服务程序的端口,使用“INADDR_ANY”作为绑定的IP地址即任何主机上的地址。  
 (3)使用bind()把上面的socket和定义的IP地址和端口绑定。这里检查bind()是否执行成功,如果有错误就退出。这样可以防止服务程序重复运行的问题。  
 (4)进入无限循环程序,使用recvfrom()进入等待状态,直到接收到客户程序发送的数据,就处理收到的数据,并向客户程序发送反馈。这里是直接把收到的数据发回给客户程序。
2、srv.cpp程序内容

#include <stdio.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>

int main()
{
    int srvSock=socket(AF_INET, SOCK_DGRAM, 0);
    
    if(srvSock==-1)
    {
        perror("创建套接字出错\n");
        return 1;
    }
    struct sockaddr_in srvAddr, clientAddr;
    srvAddr.sin_family=AF_INET;
    srvAddr.sin_addr.s_addr=htonl(INADDR_ANY);
    srvAddr.sin_port=htons(2030);

    if(bind(srvSock, (struct sockaddr *)&srvAddr, sizeof(srvAddr))==-1)
    {
        perror("绑定失败\n");
        return 1;
    }

    socklen_t 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值