sbtvd
sbtvd
2011-09-27 11:51

引入thread后socket接受不了报文了

  • c++

不使用线程thread可以正常接受报文,加了后就在recvfrom那里不动了,是怎么回事?
using namespace std;
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

void netlist()
{
int sockSrv = socket (AF_INET, SOCK_DGRAM, 0);
sockaddr_in addrSrv,addrClient;

     addrSrv.sin_addr.s_addr = htonl(INADDR_ANY);

     addrSrv.sin_family = AF_INET;

     addrSrv.sin_port = htons(1986);

     bind(sockSrv, (sockaddr *)&addrSrv,sizeof(sockaddr));



     socklen_t len=sizeof(sockaddr);

     char recvBuf[100];


     recvfrom(sockSrv,recvBuf,100,0,(sockaddr*)&addrClient,&len);



     cout<<recvBuf<<endl;

     //closesocket(sockSrv);

}

int main()
{
thread t(netlist);
t.join();

return 0;

}

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

7条回答

为你推荐