qq_32640683 2017-08-29 08:18 采纳率: 25%
浏览 2642
已结题

socket短连接接收服务器返回数据的问题

Socket soc=null;
InputStream in=null;
OutputStream out=null;
soc=new Socket(host,port);
in=soc.getInputStream();
out=soc.getOutputStream();
String length=String.format("%04d",data.length());

    System.out.println("发送的数据长度为"+length);
    out.write(length.getBytes());
    out.write(data.getBytes());
    out.flush();
            这个是我通过短连接的方式向服务器发送的数据,怎样接收服务器返回的数据,求各位大神补充一下,之前没写过这种连接方式的代码。
  • 写回答

1条回答 默认 最新

  • 蚂蚁冲锋队 2017-08-29 08:41
    关注

    socket短连接通信的流程如下:
    a)服务端开启ServerSocket服务等待socket服务端连接
    ServerSocket server=new ServerSocket(port);
    Socket socket=server.accept();
    b)客户端创建Socket对象并发起连接
    Socket socket=new Socket(ip,port);
    InputStream is=null;
    while(1){
    InputStream is=socket.getInputStream(); //循环获取数据
    if(is!=null){
    sleep(200); //考虑包的完整性,此处只是粗略的处理
    socket.close();//一旦有数据则断开连接
    break;
    }
    }
    //从 is中读取服务器发来的信息

    c)服务端接收到socket请求后读取socket中的数据,然后close掉该socket,这部分代码就省略了。

    评论

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集