如何使用套接字实现服务器客户端编程,其中服务器正在向客户端发送消息而不从客户端获取请求?
How to Implement Sever Client Programming using socket in which the server is sending message to client without getting Request from client?
一个从服务器发送到客户端的方法,服务器向客户端确认。
和服务器可以发送给客户端的另一条消息。
那么它需要两个插座还是只需要一个插座?
您可以使用单个套接字来完成,但您需要更复杂的方法。
如果你在单线程中工作,你将不得不检查套接字,如果有一些等待读取,重复,但它必须使用 none 块检查,它可以很容易地完成 select
timeout=0 或一些非常短的时间的系统调用。
另一种解决方案可以是多线程解决方案,当单个套接字从 2 个线程访问时,一个线程处理发送 request/responses,另一个线程处理从服务器接收 request/responses。两个线程都应该专用于网络,接收方等待 recv
从套接字读取并填充一些作业数据包队列,发送方等待数据包队列之类的东西,从中获取数据包,并且 send
他们通过套接字。和一些其他线程从入队列中获取数据包,处理它们,如果需要写入出队列,其他线程可能会将用户的请求添加到出队列中,依此类推...
无论如何,你必须定义一些协议来区分请求和响应。
一个从服务器发送到客户端的方法,服务器向客户端确认。 和服务器可以发送给客户端的另一条消息。 那么它需要两个插座还是只需要一个插座?
您可以使用单个套接字来完成,但您需要更复杂的方法。
如果你在单线程中工作,你将不得不检查套接字,如果有一些等待读取,重复,但它必须使用 none 块检查,它可以很容易地完成 select
timeout=0 或一些非常短的时间的系统调用。
另一种解决方案可以是多线程解决方案,当单个套接字从 2 个线程访问时,一个线程处理发送 request/responses,另一个线程处理从服务器接收 request/responses。两个线程都应该专用于网络,接收方等待 recv
从套接字读取并填充一些作业数据包队列,发送方等待数据包队列之类的东西,从中获取数据包,并且 send
他们通过套接字。和一些其他线程从入队列中获取数据包,处理它们,如果需要写入出队列,其他线程可能会将用户的请求添加到出队列中,依此类推...
无论如何,你必须定义一些协议来区分请求和响应。