我不知道怎么才能实现一个同步的socket,利用mfc中的CSocket类能不能达到目的??我主要是想这样的:我想在 调用send函数的时候 如果对方还没有收完我send的数据,send就一直处于阻塞状态。主要是因为我的代码中每段要发送的数据都有一个头、然后才是实用数据。所以我不希望我在收的时候 缓冲区里有不同的send发送的数据(这样我还的判断是那次、有几次,从哪开始分割。然后才能取出我要的数据,不仅不易控制而且还容易出错)。 不知道能不能实现?
调试欢乐多
其次,你所说的问题靠多个异步socket也能实现
不过 能再说的详细点吗?
我试过CSocket 我用一个没有调用receive的客户端连接一个服务器服务器端在连客户连上之后 连续的调用send函数,结果客户端根本没收
send函数全部调用成功了,这不是我想要的 我是想如果没人收 就得阻塞
如果对方(接受方)的window(可以理解为接受缓冲)不为0,那么就可以send。
在你的实验里面,之所以可以连续的send,就是这个原因。要做到这点。可以这样:
client recv 后就向 server 发送一个消息,说收到了。
接着 server 就可以继续发,要不然(没有收到消息),就不能发(send)。
—————————————————————————————————
Let your soul guide you upon your way
my qq is :131780
至于CSocket实现同步多线程的服务器端例程在MSDN\sample\vc\mfc\advance\
里面有!