两台Windows之间测试UDP Socket服务端、客户端通信C++

先参见:https://www.jianshu.com/p/f3446b49f8e6

1.第一台Windows的VC++ 6.0新建server工程后依次添加InitSock.h头文件和UDP服务端.cpp文件;

2.第二台Windows的Microsoft Vistual C++ 2010新建client工程后依次添加InitSock.h头文件和UDP客户端.cpp文件;

3.在第一台电脑(服务器192.168.2.247)上查询服务器端的IP(ipconfig)和UDP端口号(netstat -ano),在UDP服务器端.cpp文件中绑定修改本机(服务器)IP、端口;

4.在第二台电脑(客户端192.168.2.136)上的UDP客户端.cpp文件中修改填写远程地址(即待接收数据的服务器IP)、端口;

5.先运行服务器,再运行客户端,在服务器上可以接收到来自客户端192.168.2.136发送的hello word。

注意:参见https://blog.csdn.net/paladinzh/article/details/88830834

1.采用TCP通信时,客户端不需要bind()他自己的IP和端口号,而服务器必须要bind()自己本机的IP和端口号;

2.采用UDP通信时(这里是有客户端和服务器之分才这么说的,若是指定特定端口的UDP对等通信则不一样了),客户端不需要bind( )他自己的IP和端口号,而服务器需要bind自己IP地址和端口号;而且客户端需要知道服务器的IP和端口号。

原因:因为服务器是时时在监听有没有客户端的连接,如果服务器不绑定IP和端口的话,客户端上线的时候怎么连到服务器呢,所以服务器要绑定IP和端口,而客户端就不需要了,客户端上线是主动向服务器发出请求的,因为服务器已经绑定了IP和端口,所以客户端上线的就向这个IP和端口发出请求,这时因为客户开始发数据了(发上线请求),系统就给客户端分配一个随机端口,这个端口和客户端的IP会随着上线请求一起发给服务器,服务收到上线请求后就可以从中获起发此请求的客户的IP和端口,接下来服务器就可以利用获起的IP和端口给客户端回应消息了。


InitSock.h头文件


UDP服务端

UDP客户端

你可能感兴趣的:(两台Windows之间测试UDP Socket服务端、客户端通信C++)