「已注销」 2011-06-03 01:28
浏览 302
已采纳

socket编程,自定义协议的发送

服务器是c写的
客户端需要用java写

协议如下:
类型占一个字节
命令占一个字节
数值长度2个字节
版本号一个字节
保留3个字节
crc校验4个字节
然后是body

请问这个走tcpip协议怎么发送?
我该如何封装?

要怎么发送,怎么接受服务器返回的数据?

  • 写回答

8条回答 默认 最新

  • fmjsjx 2011-06-03 09:30
    关注

    弄得简单点:
    [code="java"]
    byte[] body = bodyStr.getBytes();
    byte[] data = new byte[body.length + 12];
    data[0] = type;
    data[1] = command;
    // ...省略一大堆...
    ...
    for (int i = 0; i < body.length; i++) {
    data[i+12] = body[i];
    }
    Socket socket = new Socket("", 0);
    OutputStream os = socket.getOutputStream().write(data);
    os.flush();
    os.close();
    BufferedInputStream is = new BufferedInputStream(socket.getInputStream());
    type = is.read();
    command = is.read()
    // ...省略一大堆...
    ...
    is.close();
    socket.close();
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作