问题描述
要开发一个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