java 客户端和C 服务端 套接字通信问题。

fly_monkey 2013-07-17 01:53:26
C服务端的程序已经写好,测试通过,且不可更改。我现在用java 套接字和服务端C套接字进行通信,同java的二进制数据发给C服务端,并接受C服务端返回的二进制数据。
请问,这个怎么实现?对java不是太熟悉,但是只能用java写客户端程序,对各种流也有点晕,求教一下,最好能简单的写上几句代码,谢谢!
...全文
189 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly_monkey 2013-07-18
  • 打赏
  • 举报
回复
这个问题吧,我觉得该这么问,C的socket的缓冲区应该是char 类型的, 而JAVA的socket应该所使用的stream,感觉应该是先定义char型接收C的,然后呢,把char型转换成Int型,同理我发送的时候,也该是这样吧?
w2407603 2013-07-17
  • 打赏
  • 举报
回复
试试使用DataOutputStream 和 DataInputStream这两个流吧。。这是我找到代码你看看吧

DataOutputStream out = new DataOutputStream(new FileOutputStream(
        "Java2s.txt"));

    double[] PRices = { 19.99, 9.99, 15.99, 3.99, 4.99 };
    int[] units = { 12, 8, 13, 29, 50 };
    String[] descs = { "Java", "Source ", "and",
        "Support."};

    for (int i = 0; i < prices.length; i++) {
      out.writeDouble(prices[i]);
      out.writeChar('\t');
      out.writeInt(units[i]);
      out.writeChar('\t');
      out.writeChars(descs[i]);
      out.writeChar('\n');
    }
    out.close();

    // read it in again
    DataInputStream in = new DataInputStream(new FileInputStream(
        "Java2s.txt"));

    double price;
    int unit;
    String desc;
    double total = 0.0;

    try {
      while (true) {
        price = in.readDouble();
        in.readChar(); // throws out the tab
        unit = in.readInt();
        in.readChar(); // throws out the tab
        desc = in.readLine();
        System.out.println( unit );
        System.out.println( desc );
        System.out.println( desc );
        total = total + unit * price;
      }
    } catch (EOFException e) {
    }
    in.close();
  }
}
对于流的使用建议去看看api会帮助理解。
引用
http://www.knowsky.com/363338.html

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧