📄 53.htm
字号:
<HTML><HEAD><TITLE>CTerm非常精华下载</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type></HEAD>
<BODY bgColor=#ffffff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=100% background=0044.jpg>
<BODY>
<TR>
<TD height=150 rowSpan=2 width="308" ><IMG alt=DDl_back.jpg height=129 width=300 src="DDl_back.jpg" ></TD>
<TD background=DDl_back2.jpg height=50 width="581" ><BIG><BIG><FONT face=黑体>
<P align=center >重拳出击 一网打尽</FONT></BIG></BIG></P></TD></TR>
<TR>
<TD bgColor=#0099ff borderColor=#0099ff height=5 width="581"></TD></TR>
<TR>
<TD align=middle colSpan=2 height=100 vAlign=top width="891" ><BR>
<p align=center>[<a href="清华bbs网络资源.htm">回到开始</a>][<a href="6.htm">上一层</a>][<a href="54.htm">下一篇</a>]
<hr><p align="left"><small>发信人: sbaa (老猫), 信区: Winsock <br>
标 题: 怎么知道recv 的缓存有没有东西? <br>
发信站: BBS 水木清华站 (Sat Dec 12 10:20:12 1998) <br>
<br>
我是新学socks <br>
我的程序老是在recv 等数据 <br>
怎么能知道缓存有没有东西呢? <br>
难道非要开线程? <br>
要是unix怎么开啊 <br>
<br>
-- <br>
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.119.112.51] <br>
发信人: martinchen (懒虫), 信区: Winsock <br>
标 题: Re: 怎么知道recv 的缓存有没有东西? <br>
发信站: BBS 水木清华站 (Sat Dec 12 13:16:47 1998) <br>
<br>
使用select即可 <br>
【 在 sbaa (老猫) 的大作中提到: 】 <br>
: 我是新学socks <br>
: 我的程序老是在recv 等数据 <br>
: 怎么能知道缓存有没有东西呢? <br>
: 难道非要开线程? <br>
: 要是unix怎么开啊 <br>
<br>
<br>
-- <br>
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 159.226.43.51] <br>
发信人: sbaa (老猫), 信区: Winsock <br>
标 题: Re: 怎么知道recv 的缓存有没有东西? <br>
发信站: BBS 水木清华站 (Mon Dec 14 11:33:44 1998) <br>
<br>
怎么好象没用啊 <br>
我写的小程序象代理一样 <br>
你看看哪里有问题 <br>
while(1){ <br>
FD_ZERO(&aa); <br>
FD_SET( sockfd2, &aa ); <br>
FD_SET( newfd, &aa ); <br>
<br>
timeout.tv_sec = timeout.tv_usec = 0; <br>
<br>
select(2,&aa,0,0,&timeout); <br>
<br>
if (FD_ISSET( sockfd2, &aa )) <br>
{ recv(sockfd2,&ch,1,0);send(newfd,&ch,1,0) ;} <br>
<br>
if (FD_ISSET( newfd, &aa )) { recv(newfd,&ch,1,0);send(sockfd2,&ch,1,0) ;;} <br>
<br>
<br>
<br>
} <br>
老是接收不到数据 <br>
【 在 martinchen (懒虫) 的大作中提到: 】 <br>
: 使用select即可 <br>
<br>
<br>
-- <br>
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.119.112.51] <br>
发信人: martinchen (懒虫), 信区: Winsock <br>
标 题: Re: 怎么知道recv 的缓存有没有东西? <br>
发信站: BBS 水木清华站 (Mon Dec 14 11:49:00 1998) <br>
<br>
【 在 sbaa (老猫) 的大作中提到: 】 <br>
: 怎么好象没用啊 <br>
: 我写的小程序象代理一样 <br>
: 你看看哪里有问题 <br>
: while(1){ <br>
: while(1){ <br>
: FD_ZERO(&aa); <br>
: FD_SET( sockfd2, &aa ); <br>
: FD_SET( newfd, &aa ); <br>
: timeout.tv_sec = timeout.tv_usec = 0; <br>
: select(2,&aa,0,0,&timeout); <br>
^应当是max(sockfd2,newfd)+1, <br>
你可以参考select的参数说明, <br>
它是指从0开始到你要检查的 <br>
fd之间的个数。 <br>
: if (FD_ISSET( sockfd2, &aa )) <br>
: { recv(sockfd2,&ch,1,0);send(newfd,&ch,1,0) ;} <br>
: if (FD_ISSET( newfd, &aa )) { recv(newfd,&ch,1,0);send(sockfd2,&ch,1,0)) ;} <br>
: } <br>
: 老是接收不到数据 <br>
<br>
<br>
-- <br>
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: otcaix.iscas.ac] <br>
发信人: sbaa (老猫), 信区: Winsock <br>
标 题: Re: 怎么知道recv 的缓存有没有东西? <br>
发信站: BBS 水木清华站 (Mon Dec 14 21:09:22 1998) <br>
<br>
<br>
2不对吗? <br>
我要查两个啊 <br>
改了3也不对 <br>
老是检测不到 <br>
【 在 martinchen (懒虫) 的大作中提到: 】 <br>
: ^应当是max(sockfd2,newfd)+1, <br>
: 你可以参考select的参数说明, <br>
: 它是指从0开始到你要检查的 <br>
: fd之间的个数。 <br>
<br>
<br>
-- <br>
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.119.112.51] <br>
发信人: martinchen (懒虫), 信区: Winsock <br>
标 题: Re: 怎么知道recv 的缓存有没有东西? <br>
发信站: BBS 水木清华站 (Tue Dec 15 09:46:42 1998) <br>
<br>
问题是如果你用2的话,select <br>
只检查0,1两个描述符,而0和1 <br>
分别是stdin和stdout,改成3 <br>
也是不行的,那样的话就是检查 <br>
了stdin,stdout,stderr了,并 <br>
没有检查你想检查的socket描述 <br>
符。应当改为 <br>
max(max(sockfd2,newfd)+1,这 <br>
样select才检查sockfd2和newfd <br>
这两个描述符可不可读。 <br>
【 在 sbaa (老猫) 的大作中提到: 】 <br>
: 2不对吗? <br>
: 我要查两个啊 <br>
: 改了3也不对 <br>
: 老是检测不到 <br>
<br>
<br>
-- <br>
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: otcaix.iscas.ac] <br>
发信人: sbaa (老猫), 信区: Winsock <br>
标 题: Re: 怎么知道recv 的缓存有没有东西? <br>
发信站: BBS 水木清华站 (Wed Dec 16 19:41:38 1998) <br>
<br>
我不知道max函数要什么头文件,但我printf了sockfd2,new <br>
一个是5,一个是4那我用6总行了吧 <br>
还是老样子 <br>
你的文章我倒看懂了,可还不行,问题在那里呢? <br>
还望指点! <br>
【 在 martinchen (懒虫) 的大作中提到: 】 <br>
: 问题是如果你用2的话,select <br>
: 只检查0,1两个描述符,而0和1 <br>
: 分别是stdin和stdout,改成3 <br>
: 也是不行的,那样的话就是检查 <br>
: 了stdin,stdout,stderr了,并 <br>
: 没有检查你想检查的socket描述 <br>
: 符。应当改为 <br>
: max(max(sockfd2,newfd)+1,这 <br>
: 样select才检查sockfd2和newfd <br>
: 这两个描述符可不可读。 <br>
<br>
<br>
-- <br>
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: bbs.hhu.edu.cn] <br>
</small><hr>
<p align="center">[<a href="清华bbs网络资源.htm">回到开始</a>][<a href="6.htm">上一层</a>][<a href="54.htm">下一篇</a>]<p align="center" ><font face="黑体" size=5><big>网络资源大全</big></font></p>
</table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -