我正在使用C ++中的套接字编写客户端 - 服务器应用程序。
通信协议基本上是:
结果可以是多兆字节的数据。一旦将所有结果发送到客户端,我希望服务器向客户端发出信号已完成的信号。
是closesocket()的最佳方式,还是应该向客户端发送一条消息,指示客户端没有更多结果,客户端是否可以决定是否关闭套接字?关闭套接字的缺点是,如果客户端想要执行另一个命令,则需要建立新连接,但是从服务器发回消息的缺点是客户端需要扫描每个recv以确定结果完成了。
哪种是最佳做法?
答案 0 :(得分:3)
我会采取一种略微横向的方法:
通过这种方式,客户端知道要读取多少,并可以决定是否关闭连接。