远程桌面控制(2)创建套接字发送端线程

该程序使用C++实现了一个循环发送指定文件(例如“c:111.jpg”)到特定服务器的功能。通过创建线程,程序不断地打开文件,读取内容,并通过UDP协议发送到预设地址(10.71.120.218,端口6000)。文件被分割成较小的数据包进行传输,并且每次发送后都会休眠10毫秒。

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

UINT proc2(LPVOID lparam)
{
  CideskDlg *pDlg=(CideskDlg*)lparam;CString str; SOCKADDR_IN addrClient;     

   addrClient.sin_addr.S_un.S_addr=inet_addr("10.71.120.218");
     addrClient.sin_family=AF_INET;
     addrClient.sin_port=htons(6000);

while(1)
 {
  WIN32_FIND_DATA  finddata;
  CFile file;
  pDlg->createImg();
  FindClose(FindFirstFile(L"c:\\111.jpg",&finddata));
  DWORD length=finddata.nFileSizeHigh*(MAXDWORD+1)+finddata.nFileSizeLow;
     sendto(pDlg->m_socket,(char *)&finddata,sizeof(WIN32_FIND_DATA),0,(const sockaddr*)&addrClient,sizeof(SOCKADDR));
  DWORD dwRead=0;
  UINT dw=0;
  byte *data=new byte[1024*40];
  memset(data,0,1024*40);

 file.Open(L"c:\\111.jpg",CFile::modeRead|CFile::typeBinary);
  while(dwRead<length)
  {
  dw=file.Read(data,1024*40);
  sendto(pDlg->m_socket,(char*)data,dw,0,(const sockaddr*)&addrClient,sizeof(SOCKADDR));
  dwRead+=dw;
  Sleep(10);
  }
  Sleep(10);
  file.Close();
  }
 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值