我是通过套接字发送数据的新手,但我现在想出了如何做到这一点。 我的问题是我只能发送和接收字节,有没有一种方法可以发送和接收字符串而不是字节?或者它总是字节?
我很抱歉我对套接字的工作方式有所了解,但我正在尝试(;
提前致谢!
答案 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();