免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3331 | 回复: 15
打印 上一主题 下一主题

再问关于TCP接连的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-05 20:43 |只看该作者 |倒序浏览
前一段时间我问了一个关于TCP接连的问题,主要是问在listen以后,可不可以对这包进行一些如排队的处理,先谢谢那些帮助过我的朋友,现在我又碰到一个问题:
     在listen后,我们能不能不用accept( )也能得到这个包的IP地址,如果,用了accept( )后这个包从已完成队列出来后,到底在又到哪去了,要是再对accept( )返回的fd进行如队列的操作,如果要是在这个程中把这包丢了,怎么能简单能客户一个错误回复?谢谢了!!

论坛徽章:
0
2 [报告]
发表于 2008-06-05 21:14 |只看该作者
楼主你的概念有很多问题,首先TCP是面向流的协议,对使用者而言是没有包的概念的,TCP内部使用分节的概念,保证你发送的数据能被对方收到,而且不会重复。
accept()返回只是表示TCP三次握手完成,和客户端的连接建立成功。TCP协议栈会对请求进行排队

论坛徽章:
0
3 [报告]
发表于 2008-06-05 21:48 |只看该作者

回复 #2 lanying_wzw 的帖子

lanying_wzw 谢谢你的回答 但TCP三次握手完成应该是listen后吧 它把完成的接连放在已完成队列,返回这个接连的fd accept再从里面取 我现在最想知道的就是 通过这个listen返回的fd 我们能不能不用accept也能提到发出这个接连的客户IP.谢谢!!!

论坛徽章:
0
4 [报告]
发表于 2008-06-05 21:56 |只看该作者
listen()返回的不是fd,只是对用socket()建立的fd进行监听操作,至于你说的不accept就想知道连接队列所有建立连接的客户IP,我觉得不行

论坛徽章:
0
5 [报告]
发表于 2008-06-05 22:24 |只看该作者
三次握手在调用listen之后和listen的套接字close之前,这段时间都有可能进行三次握手,三次握手过程跟用户层程序无关,是由内核自动完成的,调用accept就是为了去看一下是否有完成三次握手的连接了。为什么不用accept呢?

论坛徽章:
0
6 [报告]
发表于 2008-06-05 22:57 |只看该作者
原帖由 cugb_cat 于 2008-6-5 22:24 发表
三次握手在调用listen之后和listen的套接字close之前,这段时间都有可能进行三次握手,三次握手过程跟用户层程序无关,是由内核自动完成的,调用accept就是为了去看一下是否有完成三次握手的连接了。为什么不用 ...


赞同.

论坛徽章:
0
7 [报告]
发表于 2008-06-06 11:53 |只看该作者
原帖由 cugb_cat 于 2008-6-5 22:24 发表
三次握手在调用listen之后和listen的套接字close之前,这段时间都有可能进行三次握手,三次握手过程跟用户层程序无关,是由内核自动完成的,调用accept就是为了去看一下是否有完成三次握手的连接了。为什么不用 ...



这说法我同意 如果我已accept了,然后把它这个接连套接口关闭,但保留原来传给它的 监听套接口描述字,还可不可以用这个监听套接口描述字再进行一次accept?? 谢谢!!

论坛徽章:
0
8 [报告]
发表于 2008-06-06 13:46 |只看该作者
原帖由 xinrui_aozhi 于 2008-6-6 11:53 发表



这说法我同意 如果我已accept了,然后把它这个接连套接口关闭,但保留原来传给它的 监听套接口描述字,还可不可以用这个监听套接口描述字再进行一次accept?? 谢谢!!

当然可以

论坛徽章:
0
9 [报告]
发表于 2008-06-06 17:21 |只看该作者
原帖由 chzCPU 于 2008-6-6 13:46 发表

当然可以


这样好像不可以 我刚试了 这样是对下一个listenfd进行accept( ),这时只有客户端再发起一次接连请求.还有没有别的办法 让我们能在accept( )之前得到客户端的IP  谢谢!!!

论坛徽章:
0
10 [报告]
发表于 2008-06-06 17:23 |只看该作者

回复 #9 xinrui_aozhi 的帖子

估计不可以....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP