linux c之解决使用socket函数返回为0的问题

本文讲述了在Linux环境下进行TCP通信时,遇到socket函数返回0的问题。作者通过排查代码,发现因符号"<"放置错误导致判断失误,从而使得socket描述符被错误赋值为0。总结提醒开发者注意此类低级错误,确保代码审查细致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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、总结

      以后千万不要犯这种傻逼问题,代码要写好。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦茶子12138

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值