Socket编程 ——UDP 实验报告

这篇实验报告详细介绍了如何使用UDP套接字进行数据反射交互和文件传输。在数据反射部分,客户端发送数据到服务端,服务端接收并回传数据,同时通过多线程实现并发。文件传输实验中,客户端发送文件名,然后传输文件内容,服务端通过新线程处理每个用户的连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 客户端数据反射交互

(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 > 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值