不使用线程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;
}