关于socket的问题
for(int i=0;i<3;i++)
{
CSocket socket;
CString str="rrr";
socket.send(str,......);
}
当执行这个循环的时候是连续发送3条str
但我发现一个问题如果client方的recv的接受速度慢以后啊 可能一次受到2条str或者3条str
我要问的是 怎么才能让client 的recv完成后 servlet的 send在发送啊
问题点数:0、回复次数:8Top
1 楼zytzjx(wecan)回复于 2004-12-01 12:36:49 得分 0
这个不行,因为SOCKET在建联接是要时间的,你马上就SEND是有问题的。Top
2 楼blastzgd(悟道)回复于 2004-12-01 13:11:31 得分 0
客户端收到每消息后发送一个确认包
服务端收到确认包后再发送下一条消息。
如果你的套接字是采用异步模型,最好不要使用循环,如真要用循环就加入事件等待来处理。Top
3 楼kyh1234567(曾一坤)回复于 2004-12-01 13:13:21 得分 0
借此问一下:
CString str;
str = "tttt";
m_pSocket->Send(str.GetBuffer(0),str.GetLength(),0);
问题是在编译时出现:error C2059: syntax error : 'constant'
这是为什么????
多谢指教!!!!!Top
4 楼SJcinux(香卜裁)回复于 2004-12-01 13:14:20 得分 0
加入事件处理功能,WSAAsyncSelect,WSAEnumNetEvetTop
5 楼yhlovehx(石头)回复于 2004-12-01 14:09:25 得分 0
怎么加入事件 啊 请给个例子 谢谢啊Top
6 楼yhlovehx(石头)回复于 2004-12-01 14:10:02 得分 0
还有啊socket的send 和recv可不可以同时进行啊Top
7 楼kyh1234567(曾一坤)回复于 2004-12-01 15:09:33 得分 0
UPTop
8 楼nastar(阿门)回复于 2004-12-01 15:21:08 得分 0
CSocket socket;
CString str="rrr";
for(int i=0;i<3;i++)
{
str="rrr";
socket.send(str,......);
}
试试
Top




