我使用套接字创建程序。我有两个套接字:一个用于监听,另一个用于连接到外部服务器。 一个连接到服务器以无限循环读取数据的服务器不断将数据传输到我的程序,并在“实时”中写入该数据以输出。如何处理两个套接字,当一个套接字在后台做事
第二个正在收听消息 - 当消息处于暂停状态时,程序应停止从第一个套接字读取数据。
如何处理这种情况? Poll()/ select()不是解决方案,因为这两个套接字需要同时工作,并且当轮询检测到要从套接字一读取的数据时,我将进入无限循环,并停止在第二个套接字上侦听。
我曾想过要在不断的时间内打破从服务器读取数据的无限循环,但是当消息到来时,它必须等待。
请帮帮我!
我不明白为什么民意调查/选择不是解决方案在这里 - 为什么你“进入无限循环,并停止聆听”?不过,多线程是另一种可能的解决方案。 –
使用多线程,其中一个线程根据需要不断侦听。或者定期轮询套接字并将接收到的数据排入某种缓冲区/队列。 – ArchbishopOfBanterbury
@OliverCharlesworth poll/select等到一个或多个文件描述符变为“准备就绪”,我的第一个套接字总是准备好,那么第二个套接字应该“说”什么? – Michocio