java socket发送定长报文_客户端SOCKET不断发送报文,怎么获得每次的信息,并依次处理?...

当前位置:我的异常网» Java Web开发 » 客户端SOCKET不断发送报文,怎么获得每次的信息,并

客户端SOCKET不断发送报文,怎么获得每次的信息,并依次处理?

www.myexceptions.net  网友分享于:2015-08-27  浏览:277次

客户端SOCKET不断发送报文,如何获得每次的信息,并依次处理????

下面是小弟的代码,但是我这个代码运行情况是客户端不断发,服务器端接收,等到客户端不再发送时,再处理收到的报文。

现在我希望能收到一笔报文就立即处理,而不是堆积起来处理。请高手指点下如何改,谢谢!!!

代码如下

public class SocketServer {

public SocketServer(){

Socket incoming;

ServerSocket so;

try{

so= new ServerSocket(8010);

System.out.println("等待客户端连接");

while(true){

try{

incoming = so.accept( );

System.out.println("已连接客户端");

GetInfo gi=new GetInfo(incoming);

} catch (IOException e){

so.close();

e.printStackTrace();

}

}

}catch (IOException e){

e.printStackTrace();

}

}

public static void main(String[] args){

PropertyConfigurator.configure("E:\\Myeclipse\\workspace\\oufeitest\\src\\oufei\\test\\log4j.properties");

new SocketServer();

}

private static class GetInfo implements Runnable{ //�߳���

private Socket incoming;

private String s=null;

private BufferedReader b;

Thread t;

public GetInfo(Socket incoming){

try{

this.incoming=incoming;

b=new BufferedReader(new InputStreamReader(incoming.getInputStream()));

t=new Thread(this);

t.start();

}catch(IOException e){

e.printStackTrace();

}

}

public void run(){

try{

// while(true){

Logger logger=Logger.getLogger(SocketServer.class);

String lines;

String line="";

while ((lines = b.readLine()) != null){

line+=lines;

}

System.out.println("line----"+line);

System.out.println(line.length());

List list1 = new ArrayList();

for(int i=0;i

list1.add(line.substring(i,i+63));

}

Iterator list=list1.iterator();

while(list.hasNext()){

String co="";

co=(String) list.next();

logger.info("后台socket发送给我的内容:"+co);

String post_url="http://esales1.ofcard.com:8088/onlineorder.do";

String content=ConcatPackage.getPackage(co);

//用post方式发送http请求

String xmlcontent="";

try {

xmlcontent=Sender.readContentFromPost(post_url, content);

} catch (IOException e) {

// TODO Auto-generated catch block

System.out.println("不好啦,发送http请求出问题啦,哦也!");

e.printStackTrace();

}

System.out.println("查看取得的xml字符串是否为空:"+xmlcontent);

Decodexml decoderxml = new Decodexml();

String packagesend = decoderxml.xmlElements(xmlcontent); //xml字符串被解析并被拼装为package

文章评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值