[求助]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
----------------解决方案--------------------------------------------------------
select()第一个参数错了,另外设置一个读集就可以了,你设两个干吗?赋值好玩啊
不用设置结构,创建套接口,绑定,监听后用select()就行了
----------------解决方案--------------------------------------------------------