我对这段代码有疑问。如您所见,使用内部线程 recv 启动,因此程序被阻塞等待给定但将继续执行,让任务锁定线程。我的程序将继续接收 recv 数据套接字 new_sd,因此我进入了一个无限循环(注释代码)。问题是通过在 recv 之前输入 while (1) 我的程序块,但没有正确插入它会收到一个字符串,但在那之后会停止。有人可以帮我让我的recv总是等待信息吗?在此先感谢您的帮助。
-(IBAction)聊天{
[NSThread detachNewThreadSelector:@selector(riceviDatiServer) toTarget:self withObject:nil];
}
-(无效)riceviDatiServer{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
labelRicevuti.text = [[NSString alloc] initWithFormat:@"In attesa di ricevere i dati"];
char datiRicevuti[500];
int ricevuti;
//while(1){
ricevuti = recv(new_sd, &datiRicevuti, 500, 0);
labelRicevuti.text = [[NSString alloc] initWithFormat:@"%s", datiRicevuti];
//}
[pool release];
}