Linux下C语言实现简单的udp通信

本文详细介绍了如何使用C语言在Linux系统下实现UDP通信。包括编写UDP客户端,能够发送消息,以及创建UDP服务端来接收并打印客户端的消息。文章提及了在Windows和Linux中`struct sockaddr`和`struct sockaddr_in`结构体的区别,并提供了服务器和客户端的代码示例。
摘要由CSDN通过智能技术生成

用C语言实现UDP 通信。写一个udp 的客户端,可以向外发送消息。再写一个udp服务端,接收客户端的消息,并且打印出来。

*事先说明:
在window和Linux中有一下结构:
struct sockaddr
{
unsigned short;
sa_family; //address family :AF_XXX
char sa_data[14]; // 14 bytes of the protocol address
}
struct sockaddr_in //在netinet/in.h 中定义:存储IP地址,使用in_addr这个数据结构
{
short sin_family; //address family:AF_XXX
unsigned short sin_port; //port number (必须采用网络数据格式,普通数字可以用htons()函数转换成网络数据格式的数字)
struct in_addr sin_addr; //ip address in nerwork byte order(internet address)
unsigned char sin_zero[8]; same size as struct sockaddr 没有实际意义,只是为了跟sockaddr结构在内存中对齐
}
typedef uint32_t, in_addr_t;
struct in_addr
{
in_addr_t;
s_addr;
}*
服务器代码如下:

#include <stdio.h>
#include <string.h>
#include <unistd.h> // for close()
#include <sys/types.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define PORT 12347  
#define MAXDATASIZE 1024  

int main()
{

    int sockefd; // socket descriptors

    struct sockaddr_in server; //server's address information
    struct sockaddr_in client;  // client's address information

    socklen_t sin_size;

    int num, i;

    char recemsg[MAXDATASIZE];
    char sendmsg[MAXDATASIZE];
    char condition[] = "quit";

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值