我把问题简单描述一下,我现在必须要用 CAsyncSocket类给 202.108.33.60 80 端口 发送一个字串"Hello world!",
class CTestSock : public CAsyncSocket;//beginCTestSock x;
x.Create();
x.Connect("202.108.33.60",80);
x.Send("hello world",8);发送总是失败的,我想我是知道原因的,应为CTestSock 是异步的,Connect函数返回了,但是其实没有建立好,立刻发送肯定会失败。如果在Connect之后Sleep(200),结果就是好的。
可是不同的网站这里的Sleep时间应该是不一样的,我想一联结好就立马发出去。不要有多的延时。
我想问一下还有没有简单的一定方式,我不想改CAsyncSocket方式,
能不能在Connect之间将x设成同步函数?
那们高手指点一下。CAsyncSocket异步
class CTestSock : public CAsyncSocket;//beginCTestSock x;
x.Create();
x.Connect("202.108.33.60",80);
x.Send("hello world",8);发送总是失败的,我想我是知道原因的,应为CTestSock 是异步的,Connect函数返回了,但是其实没有建立好,立刻发送肯定会失败。如果在Connect之后Sleep(200),结果就是好的。
可是不同的网站这里的Sleep时间应该是不一样的,我想一联结好就立马发出去。不要有多的延时。
我想问一下还有没有简单的一定方式,我不想改CAsyncSocket方式,
能不能在Connect之间将x设成同步函数?
那们高手指点一下。CAsyncSocket异步
void OnConnect(int e)
{
if(e == 0)
{
Send
}
}
如果你想用同步,直接用CSocket
否则就像2楼所说用CSocket,只要Connect成功,后面就可以直接发送