欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 【网编】——UDP编程

【网编】——UDP编程

2025/1/7 7:27:42 来源:https://blog.csdn.net/2401_85947445/article/details/141198216  浏览:    关键词:【网编】——UDP编程

宏观操作

服务器:socket创套接字—bind绑定连接—recvfrom接收数据/sendto发送数据

客户端:socket创套接字—sendto发送数/recvfrom接收数据—close关闭套接字

函数 

recv

ssize_t recvfrom ( int sockfd , void * buf , size_t len , int flags , struct sockaddr * src_addr , socklen_t * addrlen );
recv(sock套接字,buf地址,buf大小,0,发送端结构体的指针,指针大小)

返回值:

成功:接收字节个数

失败:-1

0:客户端退出=quit

sendto

ssize_t sendto ( int sockfd , const void * buf , size_t len , int flags , const struct sockaddr * dest_addr , socklen_t addrlen );
sendto(sock套接字,buf地址,buf大小,0,接收端结构体的指针,指针大小)

返回值:

成功:接收字节个数

失败:-1

UDP客户端

头文件:

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
#include <errno.h>
#include<stdio.h>
#include <netinet/in.h>
#include <netinet/ip.h> /* superset of previous */
#include <arpa/inet.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>

//创建套接字
int sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sock<0)
{ perror("sock err");return -1;}printf("sock ok");
struct sockaddr_in shiny;
//发送struct sockaddr_in addr;addr.sin_family=AF_INET;addr.sin_port=htons(atoi(argv[2]))addr.sin_addr.s_addr=inet_addr(argv[1]);
socklen_taddrlen=sizeof(addr);
#define N 64char buf[N]={"helloworld"};sendto(sockfd,buf,N,0,(struct sockaddr*)&shiny,&addr,addrlen);//关闭文件描述符close(sockfd);return 0;
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com