Socket长连接问题

问题描述

要开发一个Socket接口,以前没接触过Socket,百度了一下看的好乱,我这边是客户端,要求用长连接机制来实现,请问各位大神,如何来实现,最好能有例子参考,场景如下:对方IP:10.1.198.47端口:18899请求示例如下:QryBossLog{020006}{13900000097}{20130701000000}{20130731000000}{200}如何通过Socket长连接方式来得到对方的返回字符串,谢谢

解决方案

解决方案二:
看看这个:
解决方案三:
我刚开始学习的时候也有些混乱,慢慢来;参照楼上的例子多看看多思考,没有想象中那么难的。
解决方案四:
不推荐使用原生jdksocketapi编程....太难使用...推荐socket框架,Apachemina框架....或者jbossnetty...
解决方案五:
引用3楼attilax的回复:

不推荐使用原生jdksocketapi编程....太难使用...推荐socket框架,Apachemina框架....或者jbossnetty...

新手还是应该从同步的socketAPI开始学习。
解决方案六:
通信,首先想到的是协议,简单点说就是什么连接(长连接/短连接);双方的数据格式,你用什么格式的数据发送给对方,对方以什么样的格式返回信息给你,这个要在通信的双方约定好;如何处理异常情况,既然是长连接,是否需要心跳方面的检测,如果连接被意外断开该如何处理业务逻辑,马上重新连接还是等待一定时间再重连……楼主,如果服务端的协议已经由别的公司制订好了,你照着做就是了,如果没有,那么你要自己制订协议
解决方案七:
这是一个客户端的示例程序:importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.io.Reader;importjava.io.Writer;importjava.net.Socket;publicclassSocketClientTest{publicstaticvoidmain(String[]args)throwsException{//TODOAuto-generatedmethodstub//为了简单起见,所有的异常都直接往外抛Stringhost="127.0.0.1";//要连接的服务端IP地址intport=8080;//要连接的服务端对应的监听端口//与服务端建立连接Socketclient=newSocket(host,port);//建立连接后就可以往服务端写数据了Writerwriter=newOutputStreamWriter(client.getOutputStream());writer.write("test");writer.flush();//写完后要记得flushReaderreader=newInputStreamReader(client.getInputStream());charchars[]=newchar[64];intlen;StringBuffersb=newStringBuffer();while((len=reader.read(chars))!=-1){sb.append(newString(chars,0,len));}System.out.println("fromserver:"+sb);writer.close();reader.close();client.close();}}

解决方案八:
网上例子很多http://jiewo.iteye.com/blog/1562168

时间: 2024-10-25 13:52:07

Socket长连接问题的相关文章

利用socket长连接做信息报警提示

问题描述 利用socket长连接做信息报警提示 现在在做一个项目,需要用服务器推送技术做一个报警提示,就是只要有没有处理的信息显示,就自动报警

socket #-C#SOCKET长连接小数据程序未响应

问题描述 C#SOCKET长连接小数据程序未响应 最近由于业务的需要,Linux系统嵌入式设备往我做的服务程序发送数据. 速度奇慢,而且还是程序无响应.后来自己用C#写了一个客户端用来测试.已经用了线程池,不知道用法对不对.请大家帮忙看下. 服务端: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.N

server-求 如何在Socket长连接中传参数

问题描述 求 如何在Socket长连接中传参数 package cn.qmhd.socket; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; import java.net.ServerSocket; import java.net.Socket; impor

java socket长连接中解决read阻塞的3个办法_java

解决的方法有3个 : 1 约定发送的数据长度,比如 http的 keepAlive 就是必须依赖这个的 Content-Length 2 设置超时的时间,根据我的经验,只有在Socket级别设置才有效. 复制代码 代码如下: Socket socket = new Socket(host,port); socket.setSoTimeout(100); // 如果超过100毫秒还没有数据,则抛出 SocketTimeoutException 3 让发送端发送完数据后,关闭连接. 这个在Http的

iOS后台如何保持socket长连接和数据传输

iOS后台如何保持socket长连接和数据传输 工程中使用tcp长连接来和服务端进行数据传输,在IOS平台上,由于苹果的后台机制,会有以下问题: 当程序退到后台的时候,所有线程被挂起,系统会回收所有的socket资源,那么socket连接就会被关闭,因此无法再进行数据的传输: 解决方法: 通过设置以下属性可以保持socket连接和数据的继续传输 1.需要在Info.plist文件中添加UIBackgroundModes中的VOIP键值: 2.设置流属性 CFReadStreamRef和CFWri

socket长连接 1秒50帧数据 xml格式传输 丢帧

问题描述 大概万分之五左右的丢帧,求解 解决方案 解决方案二:用的UDP吧 丢点正常

关于Socket建立长连接遇到的bug信息

下面是本人在Socket连接的开发中遇到的bug总结 1."远程服务器关闭了Socket长连接'的错误信息 2.关于"kCFStreamNetworkServiceTypeVoIP" is deprecated in iOS9 AsyncSocket与SocketRocket用来做后台获取数据的时候报如下警告: kCFStreamNetworkServiceTypeVoIP - this service type is deprecated in favor of using

php长连接,奏是这么简单

说到长链接大家肯定不陌生,就是复用一个链接持续不断的进行数据交互,它不像那些一夜情似的服务,需要频繁的打开和关闭链接,效率低的同时还增加了业务的复杂度.在裆下很多互联网业务场景都需要长连接的支持,比如:游戏.聊天.信息推送等等等,今天我们就一步一步来揭秘php长连接的玩法.我相信任何一项技术的实施都是因为业务场景的需要,所以这次我们还拿聊天室说事儿. 0x00 初试牛刀 记得以前用php写聊天室还是用polling的方式,毫无疑问,一提到polling,肯定会有人说long polling,没错

基于流模式长连接的简单实现

基于流模式的长连接我们可以做很多事情,比方说在局域网内,我们建立这种模式,可以时时传输数据,而不用每次传输数据是创建socket,传输完后,关闭socket.可以减少创建销毁socket的时间. 基于流模式的下,数据一直在发送,我们需要知道,每次发送数据量,所以常见的方式时,我们在发送数据时,指定此次发送数据的长度,服务器读取流数据时,先读取数据长度,然后再按长度读取此次发送的数据. 我使用select复用IO机制实现了一个简单的client,server机制,希望对初学者有帮助 客户端代码: