unix 网络编程udp简单例程
发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,server.c#include /* See NOTES */#include #include #include #include #include #include #includ
千家信息网最后更新 2025年01月26日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安全错误
数据库的锁怎样保障安全
2022年网络安全意识考试
双路服务器性能
安装数据库后无法找到
网络安全网站设计软件
世界上收录全文最多的数据库
gis软件开发流程
怎么添加链接数据库
济南中科院软件开发工作累吗
wow9.2数据库
公司软件开发人员职位
考核点数据库设计
网页游戏登录网络安全错误
邮政储蓄软件开发二轮面试
明日之后服务器月光城
数据库主键怎么创建为自曾航
安卓手机倒数据库
美国大学网络安全博士的含金量
我的世界最危险服务器生存地
对网络安全与计算机的认知
购买网络技术服务会计科目
单用户模式启动服务器
数据库导入word打印
核电工控网络安全知识
怎么添加链接数据库
行为管理软件开发
实例与数据库的关系通俗解释
电脑和网络技术讲课
数据库技术与应用实践总结
数据库非法操作dll报错
数据库工程师考哪几本