C++ 如何使用socket实现服务器客户端编程,在socket中,服务器向客户端发送消息而不从客户端获取请求?

C++ 如何使用socket实现服务器客户端编程,在socket中,服务器向客户端发送消息而不从客户端获取请求?,c++,udp,C++,Udp,一个发送到方法,从服务器发送到客户端,服务器确认返回到客户端。 以及服务器可以发送给客户端的另一条消息。 那么它需要两个套接字还是只需要一个套接字呢?您可以使用单个套接字来实现,但需要更复杂的方法 如果在单线程中工作,则必须反复检查套接字,如果存在等待读取,但必须使用无块检查,则可以通过selectsystem call(timeout=0)或非常短的时间轻松完成 另一种解决方案可以是多线程解决方案,当一个套接字从两个线程访问时,当一个线程处理发送请求/响应时,另一个线程处理从服务器接收请求/响

一个发送到方法,从服务器发送到客户端,服务器确认返回到客户端。 以及服务器可以发送给客户端的另一条消息。
那么它需要两个套接字还是只需要一个套接字呢?

您可以使用单个套接字来实现,但需要更复杂的方法

如果在单线程中工作,则必须反复检查套接字,如果存在等待读取,但必须使用无块检查,则可以通过
select
system call(timeout=0)或非常短的时间轻松完成

另一种解决方案可以是多线程解决方案,当一个套接字从两个线程访问时,当一个线程处理发送请求/响应时,另一个线程处理从服务器接收请求/响应时。两个线程都应该专用于网络,接收方等待
recv
从套接字读取并填充一些作业数据包队列,发送方等待数据包队列之类的东西,从中获取数据包,然后通过套接字发送数据包。其他一些线程从in队列中获取数据包,对其进行处理,如果需要写入out队列,其他线程可能会将用户的请求添加到out队列,以此类推

无论如何,您必须定义一些不同于请求到响应的协议