书上三次握手的步骤是:
1、客户通过connect发送一个“同步”,请求连接
2、服务器通过listen接受到请求,并确认(accept)客户的“同步”请求,同时自己也发送一个“同步”包。
3、客户确认服务器的“同步”
现在服务器的连接部分程序是:
listen(...);
accept(...);
客户端只有一个:connect(...);那么我想问:这里只有accept和connect两个函数发送过数据包,何来三次握手呢?难道connect函数会发送两次数据包?
1、客户通过connect发送一个“同步”,请求连接
2、服务器通过listen接受到请求,并确认(accept)客户的“同步”请求,同时自己也发送一个“同步”包。
3、客户确认服务器的“同步”
现在服务器的连接部分程序是:
listen(...);
accept(...);
客户端只有一个:connect(...);那么我想问:这里只有accept和connect两个函数发送过数据包,何来三次握手呢?难道connect函数会发送两次数据包?
解决方案 »
- 显示unsigned int数据
- VC6在IE8中调试ActiveX控件的问题,有经验的进!!!
- RS232串口发送数据问题
- 纠结,最近老是喜欢泡在CSDN了
- 弹出式菜单消息传递问题,不解中
- 简单的MFC的echo程序,已经成功了,但为什么连接时还是报WSAEWOULDBLOCK?
- 最好用的安装制作程序是什么,在什么地方可以下载?
- 终于能进来了,送分.顺便问一个键盘钩子的小问题.
- 关于注册表的一个简单问题
- 有光标位图的byte,如何显示光标
- loadframe 抛异常,达人来看看,解决立即结贴
- 续:【求助】SHFileOperation() 函数中 SHFILEOPSTRUCT 结构的 pFrom 赋值的问题。
connect等api函数封装了很多细节的东西
client : syn
server : syn + ack
client : ackaccept :返回正常使用流的服务器端socket
然后在服务器资源允许的情况下,去accept来清空一个缓冲池里的已连接,并提供服务
三次握手必须立即完成,有超时的,在xp下,半连接是有限制的,是10个,而且通过试验,其三次握手竟然到10分钟时才超时,非常限制使用.