accept: Invalid argument linux 网络编程
今天测试一个本地网络通讯,在ubuntu虚拟机下出现的问题,警报:accept: Invalid argument
初始化地方:
socklen_t clilen;
struct sockaddr_in clientaddr;
问题点:
connfd = accept(listenfd,(sockaddr *)&clientaddr,&clilen);
后面google网络上相关问题之后原来是
http://blog.csdn.net/xbl1986/article/details/3525621
问题就出在accept的第3个参数:必须为正数,由于没有初始化,得到的值可能是负数。
把那个变量初始化一下就好了
先尝试修改clilen 参数为正,运行表明没有出现这个问题了:
clilen= 1; //假如改为正
struct sockaddr_in clientaddr;
connfd = accept(listenfd,(sockaddr *)&clientaddr,&clilen);
但是要做如下修改:
socklen_t clilen= sizeof(struct sockaddr); // 这样才是正确的设置
struct sockaddr_in clientaddr;
connfd = accept(listenfd,(sockaddr *)&clientaddr,&clilen);
---------------------------------------------------------------------------------------------------------
更详细的了解原因,上面的答案可以解决问题,如果想知道更了解细节,可以看下面的个人总结
-----------------------------------------------------------------------------------------------------------

从本函数的描述上看,长度不能小于0 ,否则会出错,如果没有对长度初始化,可能会得到负值。
可以在运行的时候打印addrlen 这个值,当没有初始化的时候,打印得到的是负值。
accept: Invalid argument linux 网络编程的更多相关文章
- 【Linux网络编程】TCP网络编程中connect()、listen()和accept()三者之间的关系
[Linux网络编程]TCP网络编程中connect().listen()和accept()三者之间的关系 基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下: conn ...
- Linux网络编程(三)
Linux网络编程(三) wait()还是waitpid() Linux网络编程(二)存在客户端断开连接后,服务器端存在大量僵尸进程.这是由于服务器子进程终止后,发送SIGCHLD信号给父进程,而父进 ...
- Proxy源代码分析——谈谈如何学习Linux网络编程
Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到, Linux和Windows这样的"傻瓜"操作系统(这里丝毫没有贬低Windows的意思,相反这应该 ...
- Linux网络编程:一个简单的正向代理服务器的实现
Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到, Linux和Windows这样的"傻瓜"操作系统(这里丝毫没有贬低Windows的意思,相反这应该 ...
- Proxy源代码分析--谈谈如何学习Linux网络编程
http://blog.csdn.net/cloudtech/article/details/1823531 Linux是一个可靠性非常高的操作系统,但是所有用过Linux的朋友都会感觉到,Linux ...
- 【深入浅出Linux网络编程】 "开篇 -- 知其然,知其所以然"
[深入浅出Linux网络编程]是一个连载博客,内容源于本人的工作经验,旨在给读者提供靠谱高效的学习途径,不必在零散的互联网资源中浪费精力,快速的掌握Linux网络编程. 连载包含4篇,会陆续编写发出, ...
- 【linux草鞋应用编程系列】_5_ Linux网络编程
一.网络通信简介 第一部分内容,暂时没法描述,内容实在太多,待后续专门的系列文章. 二.linux网络通信 在linux中继承了Unix下“一切皆文件”的思想, 在linux中要实现网 ...
- Linux 网络编程(IO模型)
针对linux 操作系统的5类IO模型,阻塞式.非阻塞式.多路复用.信号驱动和异步IO进行整理,参考<linux网络编程>及相关网络资料. 阻塞模式 在socket编程(如下图)中调用如下 ...
- linux网络编程 no route to host 解决方案
linux网络编程 no route to host 解决方案 [整合资料] (2013-05-13 21:38:12) 转载▼ 标签: net iptables it 分类: Linux 参考资料h ...
随机推荐
- HDU 1532 Drainage Ditches
网络最大流模版题,用了(Ford-Fulkerson算法) 代码不贴了,模版见我博客 http://www.cnblogs.com/zufezzt/p/4585752.html
- 《JS权威指南学习总结--9.3 JS中JAVA式的类继承》
内容要点: 一.JS中的类 1.JAVA或其他类似强类型 面向对象语言的 类成员的模样 实例字段:它们是基于实例的属性或变量,用以保存独立对象的状态. 实例方法: 它们是类的所有实例所共享的方法,由每 ...
- JavaScript面向对象基础语法总结
1.Javascript的 对象(Object): //例子:var car = { , , }; 2.使用构造函数来创建对象. //例子: var Car = function() { ; ; ; ...
- PHP导出一个txt文本文件
<?php Header( "Content-type: application/octet-stream "); Header( "Accept-Ranges ...
- CF #368 div2
题目链接:http://codeforces.com/contest/707/problem/A A. Brain's Photos time limit per test 2 seconds mem ...
- hdu_5925_Coconuts(离散化+dfs)
题目链接:hdu_5925_Coconuts 题意: 给你一张很大的图,和小于200个的障碍点,问这张图中的联通块有多少个 题解: 由于障碍点只有200个,所以肯定有很多的空白部分,我们将这些空白部分 ...
- 1.Date对象
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Leetcode 074 Search a 2D Matrix
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...
- BestCoder Round #86 A B C
这次BC终于不像上次一样惨烈 终于A了三题…… 终测ing…… 发一波题解…… A.Price List A题十分无脑 只要把所有数加起来存到sum里 询问的时候大于sum输出1 否则输出0就行了…… ...
- C# 几个特殊运算符的理解和Nullable<T> 的研究
可空值类型和?运算符 谈到运算符,大家一定很熟悉,但是对所有的运算符都能掌握吗? 看了下面代码再回答. Nullable<Int32> count = ; ; bool? flag = f ...