java socket发送字符串而不是字节

时间:2014-05-25 10:39:36

标签: java sockets

我是通过套接字发送数据的新手,但我现在想出了如何做到这一点。 我的问题是我只能发送和接收字节,有没有一种方法可以发送和接收字符串而不是字节?或者它总是字节?

我很抱歉我对套接字的工作方式有所了解,但我正在尝试(;

提前致谢!

2 个答案:

答案 0 :(得分:0)

要通过套接字发送数据,它必须是byte[]

使用<string>.getBytes()方法,您可以检索字符串的字节表示形式。然后可以通过套接字发送生成的字节数组。在接收端,使用String构造函数String(<byte array>)可以重新创建字符串。这两种方法都允许您传递字符格式作为第二个参数(查看JavaDoc)。我建议这样做,以确保即使在两个不同的平台上,您也可以收到相同的数据。

答案 1 :(得分:0)

您可以使用DataStreams和writeUTF。另一方面,您可以阅读带有readUTF的字符串。

        yourSocket = new Socket("yoursocket.ip", port);
        os = new DataOutputStream(yourSocket.getOutputStream());

        os.writeUTF("your string");

另一方面,您可以使用

以相同的方式阅读
 is = new DataInputStream(yourSocket.getInputStream());
 String yourString = is.readUTF();