我想测试我写的服务器/客户端架构的性能但是我遇到了非阻塞套接字的问题。当我使用fcntl时,我无法同时运行客户端和服务器。虽然我运行服务器客户端已经发回5000回复,虽然服务器没有开始流。怎么样 当服务器未开启且数据包丢失时,我可以在客户端上有所作为吗?在我的代码客户端 表现相同。 另一方面,当我不使用fcntl时,如果我的客户端没有收到数据包 它阻止并等待该数据包,他甚至没有回复回复。我要那个 客户端发回回复并继续接收数据包。
我不想使用睡眠,因为我需要实时表现。
我想知道真正的应用程序是如何工作的,实现它的诀窍是什么?
THX
服务器
fcntl(socket,F_SETFL,O_NONBLOCK);
while(1){
sendto clients
pthread_create(reply_processing)
}
reply_processing(){
recvfrom_clients
}
客户端
fcntl(sd,F_SETFL,O_NONBLOCK);
while(1){
bytes = recvfrom server, buf
if(nbytes != -1){
if(buf > = 512) write
else EOF return 1;
}else{
lost++
nack sent
}
}