Linux C实现简单的UDP服务器客户端通信

本文介绍了在Linux环境下,使用C语言实现简单的UDP服务器和客户端通信的过程。通过sendto和recvfrom函数,UDP协议实现无连接、不可靠的数据传输。
摘要由CSDN通过智能技术生成

    最近在学习网络编程,以下代码摘抄自《精通linux c编程》,本地已经验证能跑通。

    数据报套接字使用的是UDP协议,UDP协议是无连接不可靠的数据报协议。在这种通信方式中,客户不与服务器建立连接,它单单通过sendto向服务器程序发送数据报,sendto函数本身要求一个地址参数给出服务程序的地址。同样的,服务程序也不会接收来自客户的连接,它只是调用recvfrom函数,这个函数等待来自某个客户的数据,并且把接收到的数据和客户端地址一起返回调用者。

#include<sys/socket.h>
int recvfrom(int socket,void *buffer,size_t size,int flags,struct sockaddr * from,size_t * addrlen);
int sendto(int socket,void * buffer,size_t size,int flags,struct sockaddr * to,size_t addrlen);
    这两个函数的前三个参数socket,buffer,size分别表示套接字描述符,指向读写缓冲区的指针以及读写的字节数。

下面附上UDP server代码:

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

#define MAXMSG 1024

int main()
{
  int sockfd,size,nbytes;
  struct sockaddr_in addr;
  char message[MAXMSG],server_msg[MAXMSG]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值