当前位置: 首页 > news >正文

葫芦岛建设信息网站拐角型网站

葫芦岛建设信息网站,拐角型网站,北京个人网站备案,卓越 网站6.5 UDP编程简单示例 ​ UDP服务器首先进行初始化操作#xff1a;调用函数socket创建一个数据报类型的套接字#xff0c;函数bind将这个套接字与服务器的公认地址绑定在一起。然后调用函数recvfrom接收UDP客户机的数据报。UDP客户机首先调用函数socket创建一个数据报套接字调用函数socket创建一个数据报类型的套接字函数bind将这个套接字与服务器的公认地址绑定在一起。然后调用函数recvfrom接收UDP客户机的数据报。UDP客户机首先调用函数socket创建一个数据报套接字然后调用函数sendto向服务器发送数据报。在结束通信后客户机调用close关闭UDP套接字服务器继续使用这个UDP套接字接收其它客户机的数据报。 6.5.1 服务器端代码 参考UDP/server_line.c 1#include stdio.h 2#include stdlib.h 3#include string.h 4//#include sys/type.h 5#include sys/socket.h 6#include netinet/in.h 7#include arpa/inet.h 8#include unistd.h 9#include signal.h 10 11/*服务器端口为8180*/ 12#define SERVER_PORT 8180 13 14/************************************************************ 15*函数功能描述从8180端口接收客户端数据 16*输入参数无 17*输出参数打印客户IP以及发来的信息 18*返回值无 19*修改日期 版本号 修改人 修改内容 20*2020/05/13 v1.0.0 zonghzha creat 21*************************************************************/ 22 23 24int main(int argc, char **argv) 25{ 26 unsigned char buf[512]; 27 int len; 28 int duty_socket; 29 int customer_socket; 30 struct sockaddr_in socket_server_addr; 31 struct sockaddr_in socket_client_addr; 32 int ret; 33 int addr_len; 34 35 /* 创建数据报套接字 */ 36 duty_socket socket(AF_INET, SOCK_DGRAM, 0); 37 if (duty_socket -1) 38 { 39 printf(socket error); 40 return -1; 41 } 42 43 /* 服务器端填充 sockaddr_in结构 */ 44 socket_server_addr.sin_family AF_INET; 45 socket_server_addr.sin_port htons(SERVER_PORT); 46 socket_server_addr.sin_addr.s_addr INADDR_ANY; 47 memset(socket_server_addr.sin_zero, 0, 8); 48 49 /*绑定套接字*/ 50 ret bind(duty_socket, (const struct sockaddr *)socket_server_addr, sizeof(struct sockaddr)); 51 if (ret -1) 52 { 53 printf(bind error!\n); 54 return -1; 55 } 56 57 58 while (1) 59 { 60 addr_len sizeof(struct sockaddr); 61 /* 接收客户端数据报返回的为接收到的字节数 */ 62 len recvfrom(duty_socket, buf, sizeof(buf), 0, (struct sockaddr *)socket_client_addr, addr_len); 63 if (len 0) 64 { 65 buf[len] \0; 66 printf(Get Msg from %s : %s\n, inet_ntoa(socket_client_addr.sin_addr), buf); 67 } 68 69 } 70 71 close(duty_socket); 72 return 0; 73} 746.5.2 客户端代码 6.5.2.1 客户端程序1 参考UDP/client_line_1.c 1#include stdio.h 2#include stdlib.h 3#include string.h 4#include sys/socket.h 5#include netinet/in.h 6#include arpa/inet.h 7#include unistd.h 8 9#define SERVER_PORT 8180 10 11/************************************************************ 12*函数功能描述向指定IP的8180端口发送数据 13*输入参数点分十进制服务器IP 14*输出参数无 15*返回值无 16*修改日期 版本号 修改人 修改内容 17*2020/05/13 v1.0.0 zonghzha creat 18*************************************************************/ 19 20int main(int argc, char **argv) 21{ 22 unsigned char buf[512]; 23 int len; 24 struct sockaddr_in socket_server_addr; 25 int ret; 26 int addr_len; 27 int client_socket; 28 29 30 if (argc ! 2) 31 { 32 printf(Usage:\n); 33 printf(%s server_ip\n, argv[0]); 34 return -1; 35 } 36 37 /*创建套接字*/ 38 client_socket socket(AF_INET, SOCK_DGRAM, 0); 39 if (client_socket -1) 40 { 41 printf(socket error); 42 return -1; 43 } 44 45 /* 填充服务端的资料 */ 46 socket_server_addr.sin_family AF_INET; 47 socket_server_addr.sin_port htons(SERVER_PORT); 48 if (inet_aton(argv[1], socket_server_addr.sin_addr) 0) 49 { 50 printf(invalid server ip\n); 51 return -1; 52 } 53 memset(socket_server_addr.sin_zero, 0, 8); 54 55 56 57 58 while (1) 59 { 60 if (fgets(buf, sizeof(buf), stdin)) 61 { 62 // len send(client_socket, buf, strlen(buf), 0); 63 /*向服务器端发送数据报*/ 64 addr_len sizeof(struct sockaddr); 65 len sendto(client_socket, buf, sizeof(buf), 0, (struct sockaddr *)socket_server_addr, addr_len); 66 if (len 0) 67 { 68 close(client_socket); 69 return -1; 70 } 71 } 72 } 73 74 close(client_socket); 75 return 0; 76} 77问用UDP协议写网络通讯程序不可以用connect函数吗 答非也。 6.5.2.2 客户端程序2 参考UDP/client_line_2.c 1#include stdio.h 2#include stdlib.h 3#include string.h 4#include sys/socket.h 5#include netinet/in.h 6#include arpa/inet.h 7#include unistd.h 8 9/*服务器端口为8180*/ 10#define SERVER_PORT 8180 11 12/************************************************************ 13*函数功能描述向指定IP的8180端口发送数据 14*输入参数点分十进制服务器IP 15*输出参数无 16*返回值无 17*修改日期 版本号 修改人 修改内容 18*2020/05/13 v1.0.0 zonghzha creat 19*************************************************************/ 20 21int main(int argc, char **argv) 22{ 23 unsigned char buf[512]; 24 int len; 25 struct sockaddr_in socket_server_addr; 26 int ret; 27 int addr_len; 28 int client_socket; 29 30 31 if (argc ! 2) 32 { 33 printf(Usage:\n); 34 printf(%s server_ip\n, argv[0]); 35 return -1; 36 } 37 38 /*创建数据报套接字*/ 39 client_socket socket(AF_INET, SOCK_DGRAM, 0); 40 if (client_socket -1) 41 { 42 printf(socket error); 43 return -1; 44 } 45 46 socket_server_addr.sin_family AF_INET; 47 socket_server_addr.sin_port htons(SERVER_PORT); 48 if (inet_aton(argv[1], socket_server_addr.sin_addr) 0) 49 { 50 printf(invalid server ip\n); 51 return -1; 52 } 53 memset(socket_server_addr.sin_zero, 0, 8); 54 55 ret connect(client_socket, (const struct sockaddr *)socket_server_addr, sizeof(struct sockaddr)); 56 if (ret -1) 57 { 58 printf(connect error!\n); 59 return -1; 60 } 61 62 63 while (1) 64 { 65 if (fgets(buf, sizeof(buf), stdin)) 66 { 67 len send(client_socket, buf, strlen(buf), 0); 68 if (len 0) 69 { 70 close(client_socket); 71 return -1; 72 } 73 } 74 } 75 76 close(client_socket); 77 return 0; 78} 79​ 在客户端代码2中connect函数并非真的在协议层建立了连接它只是指定了服务器的地址和端口号信息。 ​ 因为在connect中指定了服务器的地址和端口号信息所以后面的send就可以直接发送了而不用再次指定地址和端口号。 6.5.3 Makefile文件 all:server client_1 client_2 server:server.cgcc $^ -o $ client_1:client_1.cgcc $^ -o $ client_2:client_2.cgcc $^ -o $ clean:rm server client_1 client_2 -f注意命令语句的开头要用“Tab”键。6.5.4 执行 服务器端执行 ./server客户端执行 ./client_1 127.0.0.1客户端输入 good night服务器端显示 Get Msg from 127.0.0.1 : good night
http://www.dnsts.com.cn/news/228034.html

相关文章:

  • 杭州上城区建设局网站旅游品牌推广方案
  • 搜狐快站官网莆田做网站建设
  • 网站播放图片多大合适wordpress和论坛整合
  • 如何进行网站优化设计电台网站建设要求
  • 网络工程是冷门专业吗百度seo哪家公司好
  • 木渎建设局网站网站模板 兼容ie8
  • 中国建设学会查询网站公众号的微网站怎么做的
  • 自己怎么免费做网站电商设计师岗位职责
  • 网站开发如何引用函数免费seo关键词优化排名
  • 邯郸哪里做网站好wordpress 2.0
  • 网站域名所有权证书微信网站搭建公司
  • 企业网站的设计公司建设网站业务竞争大
  • 物流公司网站模板广告公司取名字
  • 企业自己怎么制作网站首页做it的在哪个网站找工作
  • 普洱市住房和城乡建设局网站wordpress导航横着
  • 做金属小飞机的网站更改wordpress菜单字体
  • 网站布局结构北京网站维护一般价格多少
  • 网站建设成本计划书外贸商城网站制作
  • 歌曲网站源码郑州网站建设君捷
  • 提高网站建设管理水平怎么做网站搜索引擎优化
  • 做淘宝推广怎样网站合适微网站建设是什么
  • 如何建设网站子页网站是什么软件
  • 主题商店网站设计visual制作网站开发
  • 购物网站开发问题域分析wordpress md
  • 各类郑州网站建设网页版网易云游戏
  • 昭通网站建设网站建设区域代理
  • 徐州网站建设培训班如何做网站的教程
  • 360网站拦截做宣传片制作公司保定
  • 企业网站的建立之前必须首先确定地图网站 源码
  • 大连网站建设#选领超科技杭州萧山门户网站建设公司