【网编】——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;
}
相关推荐
mmWave&THz30 分钟前
技术解析:Bolicom-mmWave高速毫米波通信设备赋能港口机械智能化升级
网络·人工智能·系统架构·信息与通信·智能硬件
被摘下的星星33 分钟前
网络设备有哪些
服务器·网络
aini_lovee36 分钟前
基于C#的三菱PLC串口通信实现方案
服务器·网络·c#
鱼大大博客36 分钟前
如何为网站选择合适的服务器?
网络·web安全·ddos
闻道且行之1 小时前
frp+Nginx 内网穿透详细配置教程
运维·网络·nginx·frp·内网穿透
鱼鳞_1 小时前
Java学习笔记_Day37(网络编程)
java·网络·笔记·学习
甘露寺1 小时前
深入理解并发模型:从 Python 的 async/await 到 Java 的虚拟线程与线程池机制
java·开发语言·网络
郝学胜-神的一滴1 小时前
深入理解 epoll_wait:高性能 IO 多路复用核心解密
linux·服务器·开发语言·c++·网络协议
亚空间仓鼠1 小时前
网络学习实例:多网段企业网络部署
网络·智能路由器
x***r1511 小时前
Wireshark-4.4.2-x64安装步骤详解(附网络抓包与分析入门教程)
网络·测试工具·wireshark