1、问题:
在 Linux 平台下写socket,实现简单的tcp通信,服务端第一次调用 socket函数返回 0
2、找原因:
我的代码是这样写的
if ((server_sockfd = socket(AF_INET,SOCK_STREAM, 0) < 0));
怎么总是返回0,怎么回事
自找方法一:
到网上找为什么socket函数返回0,5分钟过去,没反应
自找方法二:
到网上找linux socket tcp编程
然后得到代码,然后输入终端测试,发现socket返回是3,然后再去缩小范围,只执行2行代码,一行实现socket,一行打印结果,依然是3,然后再把自己写的代码也只执行这2行,依然是0,奔溃了,难道socket还受终端影响,不应该啊,然后果断问旁边做服务端开发的,当然也是搞安卓的,然后我让他看的时候,发现代码写错,那个 < 写错位置了,3 < 0 否,然后把0给了这个server_sockfd 为0,又因为 0 不小于 0,所以代码往下执行
if ((server_sockfd = socket(AF_INET,SOCK_STREAM, 0)) < 0);
3、总结
以后千万不要犯这种低级问题,代码要写好。