「已注销」 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条)

报告相同问题?

悬赏问题

  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动
  • ¥15 大一C语言期末考试,求帮助🙏🙏
  • ¥15 ch340驱动未分配COM
  • ¥15 Converting circular structure to JSON
  • ¥30 Hyper-v虚拟机相关问题,求解答。
  • ¥15 TSM320F2808PZA芯片 Bootloader