标题:[求助]Socket问题
只看楼主
jiangzw625
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2006-3-27
 问题点数:0 回复次数:1 
[求助]Socket问题

我在做SOCKET编程时发现的一个错误.
我用的是select()函数.
大概代码是这样.
fd_set fsck;
fd_set fRead;

int main()
{
SOCKET sck;
...(有关套接字的建立与端口绑定)
...
FD_ZERO(&fsck);
FD_ZERO(&fRead);
FD_SET(sck,&fsck);
while(1)
{
fRead=fsck;
nRtn=select(0,&fRead,NULL,NULL,NULL);
...(判断并接受数据)
}
}
要注意的是我把fsck和fRead变量都设成全局变量,结果第一次没问题,下次开始select返回-1,就是出错了.
但我把fsck和fRead设成局部变量,又没有问题了.
fsck是一个结构.
typedef struct _fd_set
{
int fd_count;
SOCKET fd_array[FD_MAXSIZE];
}fd_set;

难道结构体在全局的时候初始化有问题????

搜索更多相关主题的帖子: Socket 
2006-10-15 12:28
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
select()第一个参数错了,另外设置一个读集就可以了,你设两个干吗?赋值好玩啊

不用设置结构,创建套接口,绑定,监听后用select()就行了

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-10-15 13:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-96469-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.133105 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved