3dsacg汉化组软件:关于SOCKET的一个简单问题

来源:百度文库 编辑:高校问答 时间:2024/04/27 21:47:33
看似很简单的问题,不知道该怎么理解, 程序中,定义的sock_fd我加上测试语句
想看看它的数值是多少, 结果在调试的过程中发现sock_fd=4294967295,这个代表
的是它的数值,还是还是创建的套接字描述符啊?我不太理解. 而我要用强制转化

long int num=(long int)sock_fd;
转换后的num却是-1, 即便是不转换, 要是输出的话sock_fd的值也就是1.
要是说输出sock_fd为1是因为数值太大发生溢出还情有可原, 那num的输出就不明白
了,那位高手能给帮忙解释一下,到底是该怎么理解呢?

本人初学网络编程, 希望问题问的不是太幼稚的.
程序如下,很简单的.
======================================================================

#include<stdio.h>
#include<winsock2.h>
#include<windows.h>

int main(int argc,char *argv[])
{
SOCKET sock_fd;
sock_fd=socket(AF_INET,SOCK_DGRAM,0);

if(sock_fd<0) {
perror("Socket creating error!");
exit(1);
}
else
printf("Socket creating success!");
/*以下两句为测试语句*/
long int num=(long int)sock_fd;
printf("\n%d\n",num);

return 0;
}