一 客户端数据反射交互
(1)实验内容
要求:利用数据报套接字实现数据传输
- 客户端创建UDP套接字,向指定的服务端发送数据;
- 服务端接收到新数据,显示是谁发送过来的,并把该数据回传给发送方;
- 服务端使用多线程来实现并发
(2)实现方法
Client
unsigned int port;
char recvData[255];
cin >> sendData;
sendto(sclient,sendData, 255, 0, (sockaddr *)&sin, len);
// 向服务器端发送数据
int ret = recvfrom(sclient, (char *)&port, 4, 0, (sockaddr *)&sin, &len);
sin.sin_port=htons(port);
ret = recvfrom(sclient, recvData,255, 0, (sockaddr *)&sin, &len);
if(ret > 0) cout<<recvData<<endl;
//接受改变的端口值 并接受反回的信息
while(1)
{
cout<<"Input your message:";
cin >> sendData;
sendto(sclient,sendData, sizeof(sendData), 0, (sockaddr *)&sin, len);
int ret = recvfrom(sclient, recvData,255, 0, (sockaddr *)&sin, &len);
if(ret > 0) cout<<"From server:"<<recvData<<endl;
cin>>s;
if (s!=s1)//是否关闭套接字
break;
}
//做到与服务器交互
server
while (true)
{
char recvData[255];
char sendData[255];
int ret = recvfrom(serSocket, recvData, 255, 0, (sockaddr *)&remoteAddr, &nAddrLen);
NUM++;
if (ret >