免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 37042 | 回复: 21

怎么建立socket长连接??? [复制链接]

论坛徽章:
0
发表于 2006-03-01 18:44 |显示全部楼层
请问各位大虾, socket 编程是怎么建立长连接方试的

论坛徽章:
0
发表于 2006-03-01 19:12 |显示全部楼层
怎么没人回?是不是我说得不清楚呀

论坛徽章:
0
发表于 2006-03-01 19:20 |显示全部楼层
原先还不清楚长连接是什么意思,刚才查了一下(http://www.chinaunix.net/jh/36/79863.html),才知道不断开的连接就是....
如果是这样,建立连接就不是关键所在了,只是保持连接时间的长短而已。

论坛徽章:
0
发表于 2006-03-01 19:26 |显示全部楼层
那长连接与短连接 在编写代码时区别在那??

论坛徽章:
0
发表于 2006-03-01 19:41 |显示全部楼层
还是前面所说的,如果我对长短连接的概念理解没错的话,那么
长连接包括多次的读写过程,这期间不关闭连接(用一个循环就可实现);
短连接一次读写就结束(关闭连接),看到的大多数例子应该都可归于短连接。

论坛徽章:
0
发表于 2006-03-01 20:02 |显示全部楼层
譬如 HTTP 的 Connection-alive 如果为 close,则 server 收到一个 request 并发送完一个 response 之后就会主动关闭连接,这就是短连接;如果 Connection-alive keep-alive 的话可以在一个 tcp 连接中交换多次对话。是这个定义?那就只是个程序结构设计问题了。

论坛徽章:
0
发表于 2006-03-01 22:19 |显示全部楼层
不就是标准的socket函数调用吗

论坛徽章:
0
发表于 2006-03-01 23:35 |显示全部楼层
长连接短连接只是一个概念性的问题,只要知道其概念,不是一个特殊的东西:
长连接:系统通讯连接建立后就一直保持。
短连接:只有系统需要相互发消息连接才建立(客户端发起),请求消息得到响应后连接关闭;
通讯实体间使用长连接,一般还需要定义心跳消息,定期发送来检测系统间链路是否异常,每隔一定时间发送一次心跳,如果一定次数没有收到心跳消息,这认为此连接出现问题,需要断开连接重新建立。
具体心跳消息的格式,以及发送间隔,以及多少次没有收到心跳就认为链路异常,以及数据部是否算作心跳消息(有的系统如果接收到数据包则会清除心跳计时器也就相当于系统中的数据包也算作心跳消息);这个需要两端进行协商。比如GSM常用的短消息中心和其他网络实体互连的SMPP协议,要求建立的就是长连接.

所以长短连接只是一个概念问题长短连接的socket,就是使用普通的socket函数,没有什么特殊的。

[ 本帖最后由 hkwang66 于 2006-3-2 00:58 编辑 ]

论坛徽章:
0
发表于 2006-03-02 20:00 |显示全部楼层
用一个while 就能实现!  可是我要想在程序中只有一个调用 accet
多次接收发送应该怎么实现

论坛徽章:
0
发表于 2006-03-03 00:39 |显示全部楼层

回复 9楼 atg 的帖子

accept建立一个连接,都有一个文件句柄,这样读或写文件,就行了;
没有什么特殊的地方(可能就是,如果有多个连接需要把文件设置成
无阻赛方式,然后使用select进行轮询)。
(PS:是不是没有写过多个实体通讯的程序?)

[ 本帖最后由 hkwang66 于 2006-3-3 00:56 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP