【网编】——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;
}
相关推荐
岁岁种桃花儿4 小时前
Nginx 站点垂直扩容(单机性能升级)全攻略
网络·nginx·dns
Xの哲學4 小时前
Linux SMP 实现机制深度剖析
linux·服务器·网络·算法·边缘计算
一颗青果5 小时前
公网构建全流程与参与主体深度解析
网络
小北方城市网6 小时前
Python + 前后端全栈进阶课程(共 10 节|完整版递进式|从技术深化→项目落地→就业进阶,无缝衔接基础课)
大数据·开发语言·网络·python·数据库架构
山上三树7 小时前
task_struct 详解
运维·服务器·网络
sweet丶8 小时前
DNS安全威胁:从劫持、污染到放大攻击的演练
网络协议·安全
传感器与混合集成电路8 小时前
175℃持续工作:专为随钻测量系统设计的高温AC-DC电源
网络·能源
日更嵌入式的打工仔8 小时前
Ehercat代码解析中文摘录<1>
网络·笔记·ethercat
一只鹿鹿鹿8 小时前
网络信息与数据安全建设方案
大数据·运维·开发语言·网络·mysql
航Hang*9 小时前
第五章:网络系统建设与运维(中级)——生成树协议
运维·服务器·网络·笔记·华为·ensp