我不知道怎么才能实现一个同步的socket,利用mfc中的CSocket类能不能达到目的??我主要是想这样的:我想在 调用send函数的时候 如果对方还没有收完我send的数据,send就一直处于阻塞状态。主要是因为我的代码中每段要发送的数据都有一个头、然后才是实用数据。所以我不希望我在收的时候 缓冲区里有不同的send发送的数据(这样我还的判断是那次、有几次,从哪开始分割。然后才能取出我要的数据,不仅不易控制而且还容易出错)。 不知道能不能实现?
解决方案 »
- vs2008 MFC中怎么在左边的子窗口添加树型控件?
- 隐式加载dll,release编译,在静态库中使用 MFC中string释放会报错
- 装了VS2003.NET,还想用VC6,能行?
- VC和MATLAB混合编程图像处理
- 急招VC++开发人才
- 请问各位高手!游戏开发是使用c++好还是java好!
- 怎样加另外一个.cpp和.h到一个已知的工程里
- 谁能给我一份《VCMFC编程实例》的源代码?(不是电子book)
- 调用外部dll问题
- 谁能帮我找些关于RTF及其关键字的文章么?急用
- 请问介绍,SOCKS4,SOCKS5的 RFC文档编号是多少?????
- 如果用VC写一个程序在sql server2000中存、读JPG文件及avi文件
其次,你所说的问题靠多个异步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\
里面有!