【网编】——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>

cs 复制代码
//创建套接字
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 64
    char buf[N]={"helloworld"};
   sendto(sockfd,buf,N,0,(struct sockaddr*)&shiny,&addr,addrlen);


//关闭文件描述符
    close(sockfd);
    return 0;
}
相关推荐
RollingPin31 分钟前
iOS八股文之 网络
网络·网络协议·ios·https·udp·tcp·ios面试
惘嘫、冋渞6 小时前
AWS同一账号下创建自定义VPC并配置不同区域的对等链接
网络·云计算·aws
云知谷7 小时前
【HTML】网络数据是如何渲染成HTML网页页面显示的
开发语言·网络·计算机网络·html
呉師傅12 小时前
关于联想ThinkCentre M950t-N000 M大师电脑恢复预装系统镜像遇到的一点问题
运维·网络·windows·电脑
代码AI弗森12 小时前
无状态的智慧:从 HTTP 到大模型的系统进化论
网络·网络协议·http
酷熊代理13 小时前
安卓手机 IP 切换指南:告别卡顿,轻松换 IP
网络·网络协议·tcp/ip·socks5
不做菜鸟的网工13 小时前
PIM SM +MSDP 组播跨域配置案例
网络协议
月上柳青13 小时前
快速创建无线AP热点
网络·智能路由器
K_i13414 小时前
云原生网络基础:IP、端口与网关实战
网络·ip·接口隔离原则
m0_6515939114 小时前
Netty网络架构与Reactor模式深度解析
网络·架构