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,这部分代码就省略了。

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作