论坛首页 Java企业应用论坛

JAVA 线程和SOCKET TCP通讯-与移动接口对接

浏览 16662 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (9) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-06-05  
我记得socket 默认都是长连接啊

难道我记错了,楼主用mina来做啊,很不错的网络框架
0 请登录后投票
   发表时间:2010-06-05  
通过你的描述,此断开不是意外断开,而是逻辑断开。很可能是你没有按照通信协议做出正确的应答,导致对方判定你这边为非法客户端而主动断开连接。

通信协议就是双方约定好的,S端(或C端)发出什么样的数据,C(或S端)端怎么接收、解析、响应。通信协议里定义了来往的数据如何构成一个完整的包(或帧)。你贴出的代码反映出你没考虑这些问题啊。
0 请登录后投票
   发表时间:2010-06-05  
应用层协议~~~
0 请登录后投票
   发表时间:2010-06-06   最后修改:2010-06-06
看看这篇文章 ,看对你有什么帮助么
http://ahuaxuan.iteye.com/blog/657511
0 请登录后投票
   发表时间:2010-06-06  
coreymylife 写道
对方服务器状态为FIN_WAIT2说明对方已经在关闭TCP/IP的四次握手中进行了半关闭操作,导致这种问题有可能是你没有按照对方的协议发送数据,导致对方主动切断了套接字。另外请问是已连接立马断开,还是在发送完数据断开,亦或者是在不进行任何操作间隔一段时间断开。?

是已连接立马断开
我也不想这么纠结啊,可总连接不上,各种方法都试一试,就成这样了
0 请登录后投票
   发表时间:2010-06-06  
javafound 写道
问题可能出在这一行代码:
        String inline = in.readLine();  
          System.out.println(inline);  

    你不要一行一行的读,先read一个byte试试.因为对方是C++;
可能没做转换,有big-edian和little-endian(主机字节顺序和网络字节顺序)的区别

这个我也试过了,现在的问题是我还没开始正式接收数据,对方就已经断了,应该是在建立连接时就有问题,
0 请登录后投票
   发表时间:2010-06-06   最后修改:2010-06-06
username 写道
通过你的描述,此断开不是意外断开,而是逻辑断开。很可能是你没有按照通信协议做出正确的应答,导致对方判定你这边为非法客户端而主动断开连接。

通信协议就是双方约定好的,S端(或C端)发出什么样的数据,C(或S端)端怎么接收、解析、响应。通信协议里定义了来往的数据如何构成一个完整的包(或帧)。你贴出的代码反映出你没考虑这些问题啊。

我也考虑过是这个问题,但现在我这边只需要接收数据就行了啊
多谢大家这么地尽心尽力帮我解决问题,特别是dch1287,非常感谢
0 请登录后投票
   发表时间:2010-06-06  
shania0226 写道
username 写道
通过你的描述,此断开不是意外断开,而是逻辑断开。很可能是你没有按照通信协议做出正确的应答,导致对方判定你这边为非法客户端而主动断开连接。

通信协议就是双方约定好的,S端(或C端)发出什么样的数据,C(或S端)端怎么接收、解析、响应。通信协议里定义了来往的数据如何构成一个完整的包(或帧)。你贴出的代码反映出你没考虑这些问题啊。

我也考虑过是这个问题,但现在我这边只需要接收数据就行了啊
多谢大家这么地尽心尽力帮我解决问题,告别是dch1287,非常感谢


不会如此诡异吧,只需要接受数据就行了,应用层的协议如此简单,感到怀疑。不知道400的接口会不会和我做手机网关那样,长连接需要保持心跳通信,不然貌似15秒就断。



0 请登录后投票
   发表时间:2010-06-06  
用Mina框架来实现
0 请登录后投票
   发表时间:2010-06-06  
会不会连接上有没有做IP验证之类的?对方有给示例程序或文档么?

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics