不讲解了,要求读者:
1. 知道UDP是什么
2. 索求Windows环境下的socket编程函数
3. 已经配置好了编译环境——在Tools-option-中的设置

客户端代码

#include <stdio.h>
#include <winsock2.h>
#include <iostream>
#pragma comment(lib, "ws2_32.lib")
using namespace std;bool BindSocket(SOCKET& socket,short port ,const char* Ip){sockaddr_in address;address.sin_family=AF_INET;address.sin_addr.s_addr =inet_addr(Ip);address.sin_port=htons(port);if(SOCKET_ERROR == bind(socket,(const struct sockaddr*)&address,sizeof(struct sockaddr)) ){return false;} return true;
}int main()
{WORD wVersionRequested;WSADATA wData;int err;int port;               //客户端端口号 int Otherport;          //服务器端口号 char IPaddr[18];        //客户端Ip char OtherIP[18];       //服务器Ip wVersionRequested = MAKEWORD( 1, 1 );   // 请求WinSock库err = WSAStartup( wVersionRequested, &wData );if(err!=0)  {return -1;}                // 返回值为零时表示成功WSAStartupSOCKET sockCli = socket(AF_INET, SOCK_DGRAM, 0);        //创建Socket if(sockCli < 0){cout << "socket creation failed" << endl;return 0; } cout << "socket created" << endl;cout << "请输入本机IP:" << endl;     //输入客户端IP和端口号 gets(IPaddr);printf("请输入本机端口号:\n");cin >> port;if(!BindSocket(sockCli,port,IPaddr)){   //将本地IP地址和端口号绑定到所创建的套接字上cout << "Bind failed" << endl;return 0; } cout << "Bind Socket success " << endl;sockaddr_in address;                //服务器的IP和端口号 cout << "请输入服务器的IP" << endl;cin >> OtherIP;cout << "请输入服务器的端口号"  << endl;cin >> Otherport;address.sin_family=AF_INET;address.sin_addr.s_addr=inet_addr(OtherIP); address.sin_port=htons(Otherport);char talk[100]="t"; for(int i=0;i<100;i++){         //发送100个数据包 sendto(sockCli,talk, sizeof(talk), 0,(const struct sockaddr*)&address,sizeof(struct sockaddr) );}closesocket(sockCli); WSACleanup(); return 0;
}

服务器代码:

#include <stdio.h>
#include <iostream>
// c++ include lib from windows
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
using namespace std;bool BindSocket(SOCKET& socket,short port ,const char* Ip){sockaddr_in address;// set address of socket from socket family AF_INET;address.sin_family=AF_INET;address.sin_addr.s_addr =inet_addr(Ip);// set machine IP; address.sin_port=htons(port);   // set machine port// all above belong to net words;if(SOCKET_ERROR == bind(socket,(const struct sockaddr*)&address,sizeof(struct sockaddr)) ){return false;} return true;
}int main()
{WORD wVersionRequested;WSADATA wsaData;int err;int port;           //服务器端口号 char IPaddr[18];    //服务器Ip sockaddr_in address;int n=sizeof(struct sockaddr);char talk[100]={0};char buffer[100] = {0};wVersionRequested = MAKEWORD( 1, 1 );   // 请求WinSock库  err = WSAStartup( wVersionRequested, &wsaData );if(err!=0)  {return -1;} SOCKET sockSrv = socket(AF_INET, SOCK_DGRAM, 0);        //创建Socket /* Something about socket return value. */if(sockSrv < 0){cout << "socket creation failed" << endl;return 0;}cout << "socket created" << endl;cout << "请输入本机IP:" << endl;cin >> IPaddr;printf("请输入本机端口号:\n");cin >> port;//cout << IPaddr << endl << port << endl;while(! BindSocket(sockSrv,port,IPaddr)){       //将本地IP地址和端口号绑定到所创建的套接字上 cout << "Bind fail" << endl;cout << "请输入本机IP:" << endl;cin >> IPaddr;printf("请输入本机端口号:\n");cin >> port;}cout << "Bind Socket success " << endl;/*这里不知道对不对*/ int num =0;// over-time setting, and ACKpp setting;// more about recvfrom function;while(1){           //接受来自客户端的数据包 if(recvfrom(sockSrv,buffer, 100,0,(struct sockaddr*)&address,&n) == SOCKET_ERROR ) {cout << "接收失败"  << endl; }else{num++;}cout << num << endl;// output situation;}closesocket(sockSrv); WSACleanup(); return 0;
}

UDP之socket编程实例相关推荐

  1. C语言 socket编程实例

    C语言 socket编程实例 一. 面向连接的流式套接字 C/S 例子 二. 非阻塞的多人聊天服务器端例子 三. 简单的 IPv6 UDP socket编程 四.使用wireshark抓包分析tcp协 ...

  2. TCP与UDP在socket编程中的区别

    TCP与UDP在socket编程中的区别 一.TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式 TCP保证数据正确性,UDP可 ...

  3. Socket编程实例

    2019独角兽企业重金招聘Python工程师标准>>> Java具有非常强大的网络应用开发能力.学习网络编程,估计都是从编写一个socket通信开始,从中慢慢掌握网络编程的一点点知识 ...

  4. tcp与udp的socket编程,udp代码实现客户端服务端,tcp代码实现客户端服务端(单线程、多线程、多进程分别实现),三次握手

    socket编程 网络字节序 定义 为什么网络数据需要转换为网络字节序? Udp协议 Tcp协议 Udp的socket编程 编程流程 接口 创建套接字 绑定地址信息 发送 接收 关闭 主机字节序转换成 ...

  5. android c++ socket编程,C++ 中 socket编程实例详解

    C++ 中 socket编程实例详解 sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW):基于TCP的soc ...

  6. VC++ socket编程实例

    1.        两天计算机通信需要协议,通信的两台计算机IP必须唯一 2.        同一个计算机可以进行多个应用程序与其他计算机通信,IP地址唯一,而端口号是区别同一计算机(同一IP)的唯一 ...

  7. 基于 UDP 的 Socket 编程

    基于 UDP 的 Socket 编程 UDP的定义 •UDP 是用户数据报协议,提供的是无连接.不可靠信息传送服务.Java 主要提供了两个类来实现基于 UDP 的 Socket 编程. UDP编程的 ...

  8. socket编程实例_NIO之网络编程源码阅读

    之前分析了ByteBuffer.Channel相关的基本知识,现在对于NIO的基石已经有了基本的了解.不过NIO最突出的特性还是其基于select编程模型的网络编程体验. NIO网络编程通常有两种使用 ...

  9. LiteOS通信模组教程05-LiteOS的SAL及socket编程实例

    1. SAL套接字抽象层 SAL全称Socket Abstract Layer,即套接字抽象层,主要作用是对上层应用提供一层统一的 socket 编程接口,屏蔽底层网络硬件的差异. LiteOS的SA ...

  10. TCP 和 UDP 在socket编程中的区别

    (网络收集) 一.TCP与UDP的区别 基于连接与无连接  对系统资源的要求(TCP较多,UDP少)  UDP程序结构较简单  流模式与数据报模式  TCP保证数据正确性,UDP可能丢包  TCP保证 ...

最新文章

  1. 领导者必须学会做的十件事情
  2. 玩转Parse(第一篇:新手入门)
  3. CentOS下yum源epel扩展源
  4. android安全问题(二) 程序锁
  5. boost::mp11::mp_sort相关用法的测试程序
  6. python操作文件和目录_python文件和目录操作方法
  7. C#的COM接口定义细则
  8. 【转】webkit webApp 开发技术要点总结
  9. r语言 转录本结构及丰度_生信人的R语言视频教程语法篇第三章:数行天下(4)R中的数据——从结构角度划分(数组)...
  10. VS2015用nuget包管理器离线安装nupkg包
  11. 机器学习入门:隐马尔科夫模型-8
  12. 南卡、ikf蓝牙耳机怎么样?南卡、ikf两款国产高性价比蓝牙耳机对比评测
  13. Appops权限管理
  14. TCP BBR Startup gain计算总结和Startup失速问题
  15. 【java华为机试】HJ10 字符个数统计
  16. 进入Ubuntu的命令行模式
  17. 网约车市场重构进行时,高端出行能否撬动大格局?
  18. Dochub v2.2 发布,构建你自己的百度文库
  19. 深入浅出话多态(上)——具体而微
  20. 我在办公室鱼缸里 找到了窃密设备【反窃密知识分享】

热门文章

  1. mybatis 映射问题(mysql date与java Date类型格式错误)
  2. 【MATLAB图像融合】[15]一个自适应PCNN的DEMO详解
  3. kubernetes12(kubernetes的储存)
  4. oracle12c备份与恢复,Oracle Database12c Oracle RMAN备份与恢复(第4版)
  5. 工欲善其事必先利其器之学编程的电脑需要什么配置
  6. ovirt4.4.10安装配置USB重定向
  7. SSM框架利用Filter实现页面不登陆拦截,禁止跳过登录页面不登陆强制访问
  8. go编译成linux可执行,Golang 编译Mac、Linux、Windows多平台可执行程序
  9. Bilinear Pairing双线性配对的解释
  10. DHT,种子转磁力算法 种子info_hash 代码亲测