Linux Accept函数问题说明求指点

运维 系统运维
大家好。我最近刚刚接触linux下socket编程,其中accept函数怎么也通不过,还请高手指点,谢谢了。我对照网上的相关实例,没有发现有什么不一样的地方。

系统调用   accept()   会有点古怪的地方的!你可以想象发生   这样的事情:有人从很远的地方通过一个你在侦听   (listen())   的端口连接   (connect())   到你的机器。它的连接将加入到等待接受   (accept())   的队列   中。你调用   accept()   告诉它你有空闲的连接。它将返回一个新的套接字文   件描述符!这样你就有两个套接字了,原来的一个还在侦听你的那个端口,   新的在准备发送   (send())   和接收   (   recv())   数据。这就是Linux Accept函数的过程!  

Linux Accept函数代码片段如下:
 

  1. struct sockaddr addrc;  
  2. int fdc;  
  3. socklen_t len=sizeof(struct sockaddr_in);  
  4. fdc=accept(fds,(struct sockaddr*)&addrc,&len);  
  5. if(fdc==-1)  
  6. {  
  7. fprintf(stderr,"Accept error:%s\n",strerror(errno));  
  8. switch(errno)  
  9. {  
  10. case EBADF:  
  11. printf("EBADF\n");  
  12. break;  
  13. case EFAULT:  
  14. printf("EFAULT\n");  
  15. break;  
  16. case ENOTSOCK:  
  17. printf("ENOTSOCK\n");  
  18. break;  
  19. case EOPNOTSUPP:  
  20. printf("EOPNOTUPP\n");  
  21. break;  
  22. case EPERM:  
  23. case ENOBUFS:  
  24. case ENOMEM:  
  25. printf("THis\n");  
  26. case EINVAL:  
  27. printf("EINVAL\n");  
  28. break;  
  29. default:  
  30. printf("Other\n");  
  31. }  
  32. exit(1);  

Linux Accept函数运行的时间会报告说 Accept error:Invalid argument
EINVAL
根据我个人猜测,应该是第三个参数引起来的。accept的***个参数应该没问题,通过函数输出***个参数是一个正值,而且此前的bind等函数都用过,没问题。
还请各位高手帮忙看看,谢谢了

【编辑推荐】

  1. Linux 查看磁盘空间实现代码介绍
  2. Linux操作系统需要微软的十大帮助
  3. 探寻Linux到底需要多低的配置
  4. Linux测试工具tcpdump监视TCP/IP连接命令介绍
  5. Linux流量控制实例应用介绍

 

责任编辑:chenqingxiang 来源: CSDN
相关推荐

2010-06-18 09:51:51

Linux Accep

2010-06-18 10:11:16

Linux Accep

2010-06-18 17:13:07

Linux anacr

2009-12-24 14:49:38

ADO.NET运行错误

2009-12-09 13:29:17

VC++ 2005 E

2010-05-25 14:28:22

删除SVN

2010-06-18 10:24:51

Linux acces

2021-04-19 07:41:37

AcceptEmfile问题

2021-06-10 09:52:33

LinuxTCPAccept

2011-08-25 13:51:48

accept中文man

2010-02-01 10:04:25

Python模板函数

2021-01-30 11:10:51

算法回溯组合

2010-02-02 18:14:38

Python函数

2010-10-09 09:10:20

JavaScriptalert

2013-07-09 11:38:06

AdTime云图大数据

2010-01-05 16:07:46

jQuery.prot

2010-01-26 14:23:50

C++类

2010-05-20 18:30:08

Eclipse下使用S

2010-06-30 09:19:08

UML建模案例分析

2009-12-21 10:37:05

Ado.Net 实例
点赞
收藏

51CTO技术栈公众号