在编写socket程序的时候,遇到一个奇怪的问题,服务端用accept接收请求,客户端通过telnet连接上去。结果每次连上去以后连接又立即断开了,而server端accept以后并没有close连接。
代码如下:
/*server*/
int main()
{
//...
socklen_t cli_len;
struct sockaddr_in clientaddr;
while(1)
{
int connfd = accept(listenfd, (struct sockaddr *)&clientaddr, &cli_len);
if(connfd < 0)
{
perror("accept");
}
//...
}
return 0;
}
最后发现是初始化的问题,cli_len和clientaddr不能为负值,因为上面没有初始化,所以在accept的时候会出问题。最后加上初始化的代码,问题就解决了。
/*server*/
int main()
{
//...
socklen_t cli_len;
struct sockaddr_in clientaddr;
while(1)
{
memset(&clientaddr, 0, sizeof(struct sockaddr_in));
cli_len = 1;
int connfd = accept(listenfd, (struct sockaddr *)&clientaddr, &cli_len);
if(connfd < 0)
{
perror("accept");
}
//...
}
return 0;
}
分享到:
相关推荐
OSError: [Errno 22] Invalid argument问题解决问题描述解决方法那么问题出在哪了?总结 问题描述 在做SSD目标检测算法的时候,在predict.py文件中遇到了这么一个报错的问题。 // ERROR Traceback (most recent call ...
TypeError: ‘required’ is an invalid argument for positionals 的解决方法 当我在使用argparse模块时,遇到了如下错误: import argparse parser = argparse.ArgumentParser(description = 'debug_example') ...
format ' x' invalid or incompatible with argument 解决办法
本文实例讲述了php下foreach()错误提示Warning: Invalid argument supplied for foreach() 的解决方法。分享给大家供大家参考。具体实现方法如下: 一、问题: php下foreach()错误提示Warning: Invalid argument ...
在用的apache服务器,启动报错: 代码如下:shmget() failed: Invalid argumentFailed to start up concurrent users module!经检查为kernel.shmmax设置未生效(copy另一系统的,数值设置大了) 如下: 代码如下:...
我在做一个加密芯片项目时,需要用到此库其中的一些函数,就编译了这个动态库。 要注意的是,不同版本的iconv里的函数名字有时候不同: 1.有的版本是iconv_open、iconv_close这样的名字。 2.有的版本是libiconv_open...
解决protel 99 出现 format ' x' invalid or incompatible with argument这个错误时的解决方法
像往常一样:更改选择会导致两个(数量:2)SelectedIndexChanged事件。 撤消旧选择并且未选择任何项目时,将触发第一个事件-lvdisplay.SelectedItems目前不包含任何元素,并且lvdisplay.SelectedItems(0)不存在!...
protel.99 format '%x' invalid or incompatible with argument打软体报错补丁
查看samba的版本是4版本的: [root@redhat_192.168.0.12 16:08:07 ~]#rpm -qa samba samba-4.9.1-6.el7.x86_64 找了好久,百度上一直都是mount命令加各种参数,确认了用户跟密码都没有问题,目录权限也都给了,最后...
jspdf html页面生成pdf j jspdf html页面生成pdfspdf html页面生成pdf
微信JS-SDK Demo代码 invalid signature错误详解在readme里面
),它的继承关系如下 exception——–>logic_error———>invalid_argument invalid_argument原型是 代码如下: class invalid_argument:public logic_error { public: explicit invalid_argument (const string& ...
本文实例讲述了Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’: Invalid argument的解决方法。分享给大家供大家参考,具体如下: 【错误】 模拟器无法启动,报错:Cannot set up guest...
解决:protel 99se :format %x invalid or incompatible with argument问
invalid syntax是什么错误