在linux下使用socket通信,accept调用产生accept error:Invalid argument

来源:互联网 发布:ubuntu 命令行界面 编辑:程序博客网 时间:2024/05/18 02:02
accept error :Invalid argument


顾名思义,就是accept错误,非法变量。


这是accept的函数:      

int accept(int sockfd, void *addr, int *addrlen);

     

accept()函数的参数意义如下:

sockfd 是正在 listen() 的一个套接字描述符。

addr 一般是一个指向 struct sockaddr_in 结构的指针;里面存储着远程连接过来的计算机的信息(比如远程计算机的 IP 地址和端口) 。

addrlen 是 一 个 本 地 的 整 型 数 值 。



所以,就这三个错误,肯定是其中一个有问题。

1. sockfd有问题,无非就是sockfd初始化失败

2. addr有问题,无非就是bind, listen失败等,检查之后我问题是客户机的端口和服务器的不对应

3. addrlen 问题,可能就是没有初始化或者指针不对之类的吧
原创粉丝点击