Chinaunix

标题: 如何实现socket的长连接? [打印本页]

作者: xll886    时间: 2003-02-16 12:19
标题: 如何实现socket的长连接?
使用socket连接
如何实现长连接
作者: hzhrh    时间: 2003-02-16 13:20
标题: 如何实现socket的长连接?
连接后不断就可以了吧
作者: 无双    时间: 2003-02-16 14:55
标题: 如何实现socket的长连接?
什么是长连接
作者: liupch    时间: 2003-02-17 09:24
标题: 如何实现socket的长连接?
为什么要实现长连接?请给一个理由。因为有的时候长连接不但不会提供系统性能,而且会白白占用资源。
而且现在很多应用提供的连接池,也并不是说连接就全不断掉。他也是过一段时间后就会把连接重新建立一次
作者: hzhrh    时间: 2003-02-17 10:21
标题: 如何实现socket的长连接?
当传证券行情时,你说是用短连接还是用长连接好呢?
作者: hzhrh    时间: 2003-02-17 10:22
标题: 如何实现socket的长连接?
当然我也不否认通常情况下是用短连接,当特殊情况要特殊对待吗
作者: 无双    时间: 2003-02-17 12:30
标题: 如何实现socket的长连接?
你不关闭它
也不使用setsockopt改变它的属性
它不就是长连接了吗
作者: liupch    时间: 2003-02-17 12:45
标题: 如何实现socket的长连接?
并不是不关闭就可以成为长连接。因为如果一个连接建立后无任何数据传输,操作系统也会在一定时间后关闭这个连接。
作者: kpflysky    时间: 2003-02-17 13:09
标题: 如何实现socket的长连接?
不对,操作系统不会主动关闭这个连接的!
如果需要不断的传输数据,用长连接更好,只是要注意检测连接的状况
比如异常终止等等,就可以了
作者: 无双    时间: 2003-02-17 13:56
标题: 如何实现socket的长连接?
一定时间是大于两个小时
我想有多少数据也可以在两个小时内传完了吧
作者: flw    时间: 2003-02-17 14:06
标题: 如何实现socket的长连接?
原帖由 "无双" 发表:
一定时间是大于两个小时
我想有多少数据也可以在两个小时内传完了吧

证券行情是实时的,两个小时是不行的。
[quote]原帖由 "hzhrh"]当传证券行情时,你说是用短连接还是用长连接好呢?[/quote 发表:

这位是干什么的?
作者: hzhrh    时间: 2003-02-17 14:50
标题: 如何实现socket的长连接?
谁,说我吗?干吗的,现在失业!
作者: liupch    时间: 2003-02-17 14:56
标题: 如何实现socket的长连接?
失业好,说明你是自由的人,嘿嘿
作者: 无双    时间: 2003-02-17 15:47
标题: 如何实现socket的长连接?
如果没有使用setsockopt设置连接检测时间的话
那么连接是不会断的

如果使用setsockopt设置连接检测时间的话
可以设置连接检测的时间=n小时
作者: 无双    时间: 2003-02-17 15:48
标题: 如何实现socket的长连接?
连接检测是SO_KEEPALIVE选项
作者: kpflysky    时间: 2003-02-17 18:17
标题: 如何实现socket的长连接?
也可以根据返回值
判断
作者: zhxlanjuan    时间: 2003-02-18 20:25
标题: 如何实现socket的长连接?
在无数据发送的时候,发链路测试包吗,当然这个要双方达成一致才行。
作者: cooljia    时间: 2003-02-18 21:49
标题: 如何实现socket的长连接?
zhxlanjuan:
移动的cmpp2.0协议就是需要发送active test的
作者: zhxlanjuan    时间: 2003-02-19 08:18
标题: 如何实现socket的长连接?
楼上的是做什么开发的,做短信中心,还是短信网关
作者: arbol    时间: 2003-02-19 09:06
标题: 如何实现socket的长连接?
我来补充一句,银行的异地网络基本上都是双工长连接,用中间件实现,可以看看BEA的TEXEDO资料。
作者: lonemoon    时间: 2004-01-05 16:06
标题: 如何实现socket的长连接?
长连接是只长时间连接吗?(有点晕)
如果是的话,那应该很简单呀。
比如说你想控制来访问的人,那就可以在一个死循环中用一个记数器来控制呀,以下是小第的推荐代码,不知是否有用,仅供参考

// ... socket() bind() listen() accpet()
int i = 0;
while (true) {
        // ... 做你想做的事情
     if (i >; 10) {
               break;
       }
       i++;
}
作者: zjhjfeng    时间: 2005-12-01 16:21
长连接的速度要比短连接快啊,建立TCP连接很耗时的
作者: FH    时间: 2005-12-01 17:00
原帖由 liupch 于 2003-2-17 12:45 发表
并不是不关闭就可以成为长连接。因为如果一个连接建立后无任何数据传输,操作系统也会在一定时间后关闭这个连接。


哪儿写着?
作者: 高峰    时间: 2005-12-01 22:10
FH的签名好牛B啊

放自己的屁,让别人去闻吧!

哈哈
作者: chqg21    时间: 2005-12-02 10:28
做监测肯定是长连接吧,我也要用到
for(;apprunning;)
{
    connect;
   if(connect error)
      continue;
      while(apprunning)
      {
             dosomething;
         if(socket error)
           break;
       }
}
只是说明一下大概的意思,就是有意外发生了再继续发起连接




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2