📄 subject_19436.htm
字号:
<p>
序号:19436 发表者:海风 发表日期:2002-10-28 23:50:21
<br>主题:非阻塞 send()需要记下发关字节数与指针位置么
<br>内容:请问 当我调用一个select(FD_WRITE)后,系统就会自动调用<BR>CayncSocket::OnSend( int nErrorCode ) 进行处理是吧?<BR>是不是每当我调用一次select(FD_WRITE)就等于调用了OnSend( int nErrorCode )了呢<BR>如何不是的话 我要发送数据 数据在buff 时我怎么发送 ?系统怎么知道我有数据要发送?<BR>是不是当我填好buff后设一下select(FD_WRITE)就行了?<BR><BR>当发送大文件时<BR>这样子<BR>发送数据<BR>while(...)<BR>{<BR>result=Send(buff..len=100M);<BR>if (result == SOCKET_ERROR)<BR>{<BR> err = GetLastError();<BR> if(err != WSAEWOULDBLOCK)<BR> OnClose(); //发生错误<BR> else<BR> break;//错误为WSAEWOULDBLOCK时,系统会自动重新SEND()的.<BR>}<BR>}<BR>不会有问题么? 比如最近一次发送了100k 那么再继续发送是buff需要设成buff+100k以证明<BR>我刚发了100K 但还没开始 下一次再发送从 buff+100K这个地址开始发送 <BR>要不然的话 我担心发送的数据又是从buff开始的 那样的话数据永远也发不完!而且都是重复的!<BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:*** 回复日期:2002-10-29 00:10:42
<br>内容:建议:<BR>学 socket 编程最好用 winsock api 来做 (如果你是学socket的话),MFC<BR>socket有自己的特点。<BR><BR>还有,对 event, mutex ,异步io 有个了解之后对socket才会有一定的理解<BR>当然网络协议就更不用说了<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:*** 回复日期:2002-10-29 00:13:14
<br>内容:推荐一本书,我知道的唯一一本比较全的windows socket programming 的书<BR><<windows网络编程>>,本站有个贴子:网络资源集中营 有download连结
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:海风 回复日期:2002-10-29 15:28:57
<br>内容:能回答我的问题么?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:未出手的飞刀 回复日期:2002-11-11 10:37:59
<br>内容:<BR>你的理解完全错了,请看msdn;<BR>OnSend 的调用并不如你所说,如果你没有发送出错的话,<BR>OnSend在整个sock工作过程中只会调用一次,<BR>但出错后会再次调用<BR><BR>你 Send(buff 中的buff只是你的数据块,不用进行buff+100k<BR>这样的调整
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -