unix 网络编程udp简单例程
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,server.c#include /* See NOTES */#include #include #include #include #include #include #includ
千家信息网最后更新 2025年12月02日unix 网络编程udp简单例程
- server.c
- #include <sys/types.h> /* See NOTES */
- #include <sys/socket.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <stdio.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- int main(int argc, char** argv)
- {
- int ret;
- int len = sizeof(struct sockaddr);
- //创建socket
- int sockfd = socket(AF_INET, SOCK_DGRAM,0);
- if(sockfd == -1)
- {
- perror("socket\n");
- exit(1);
- }
- //将addr地址与socket绑定在一起
- //初始化地址
- struct sockaddr_in addr;
- addr.sin_family = AF_INET;
- addr.sin_port = htons(4444);
- addr.sin_addr.s_addr = INADDR_ANY;
- memset(addr.sin_zero,8,0);
- //进行绑定
- ret = bind(sockfd, (struct sockaddr*)&addr, len);
- if(ret == -1)
- {
- perror("bind\n");
- exit(1);
- }
- //接收数据
- struct sockaddr_in addr_client;
- while(1)
- {
- char buf[100];
- memset(buf,100,0);
- socklen_t length = sizeof(struct sockaddr);
- fputs("等待数据。。。。\n",stdout);
- ssize_t recnum = recvfrom(sockfd, buf, 100,MSG_WAITALL, (struct sockaddr*)&addr_client,&length);
- if(recnum<0)
- {
- perror("recvfrom\n");
- exit(1);
- }
- printf("received(%d): %s\n",recnum,buf);
- if(strcmp(buf,"stop") == 0)
- {
- break;
- }
- }
- close(sockfd);
- fputs("退出成功!!\n",stdout);
- return 0;
- }
- ----------------------------
- client.c
- #include <sys/types.h> /* See NOTES */
- #include <sys/socket.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <stdio.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- int main(int argc, char** argv)
- {
- int len = sizeof(struct sockaddr);
- //创建socket
- int sockfd = socket(AF_INET, SOCK_DGRAM,0);
- if(sockfd == -1)
- {
- perror("socket\n");
- exit(1);
- }
- //将addr地址与socket绑定在一起
- //初始化地址
- struct sockaddr_in addr;
- addr.sin_family = AF_INET;
- addr.sin_port = htons(4444);
- addr.sin_addr.s_addr = inet_addr("127.0.0.1");
- memset(addr.sin_zero,8,0);
- while(1)
- {
- char buf[100];
- memset(buf,100,0);
- fputs("请输入内容:\n",stdout);
- //存在scanf字符串空格问题
- scanf("%s",buf);
- fputs("确认发送内容为:\n",stdout);
- fputs(buf,stdout);
- printf("\n");
- sendto(sockfd, buf, 100, 0, (struct sockaddr*)&addr, len);
- fputs("确认发送完成\n",stdout);
- }
- return 0;
- }
- ----------------------------
- makefile
- .PHONY: all clean
- all:server client
- server:server.c
- gcc -o server server.c -Wall
- client:client.c
- gcc -o client client.c -Wall
- clean:
- rm -f *.o client server *~
地址
内容
数据
成功
字符
字符串
空格
问题
输入
网络
网络编程
编程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
没有服务器怎么办小程序
软件开发安卓机构
华为升级云空间无法连接服务器
湖南4u2路存储服务器生产商
软件开发的进度管理
g645能跑动数据库吗
icloud服务器地址
软件开发与销售哪个好
阿里集团网络安全经理
计算机网络技术就业很惨
做网络安全一个月工资多少
网络安全科普答题
世界战争英雄新手玩哪个服务器
电厂网络安全拓扑图
网络安全旅店处罚
网络安全考人民手抄报
创造与魔法找以前服务器了
网络安全通用模型的说明
和网络技术有关的职业
gb 软件开发过程
pubg未提供服务器怎么办
火炬之光3联不上服务器
计算机网络技术学费贵吗
怎么看魔兽服务器里的公会
科技服务平台和互联网平台
五金切割软件开发技术
僵尸世界大战服务器
新兴的数据库技术
安徽企业软件开发管理
冒险岛单机版连接数据库