【发布时间】:2015-11-24 19:40:10
【问题描述】:
所以我正在编写一个局域网井字游戏。我将“板”存储为二维char 数组。我希望能够通过套接字发送和接收这个数组。我目前正在使用InputStream 和OutputStream 发送单个字节。但是,我认为这不适用于发送数组。此外,这些流似乎只能发送int 类型的数据。有人可以向我解释如何使用 I/O 流通过套接字发送二维 char 数组。示例代码会很棒!谢谢。
当前代码:
public void communicate() {
try {
OutputStream os = client.getOutputStream();
InputStream is = client.getInputStream();
}
while (gameOver == false) {
char[][] board = new char[3][3];
try {
os.write(board); //this dosen't work, only sends non-array int types.
} catch (IOException e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
您需要序列化您的对象或使用 XML、JSON 或任何其他基于字符串的格式。
-
@PM77-1 好吧,我希望这不是唯一的方法,因为我不知道如何使用 XML 或 JSON。你确定吗?老实说,这似乎是一个相对简单的任务,Java 应该能够单独处理。我总是可以将 char 数组转换为其他类型的数组,例如 String 或 int,然后当它在另一端收到时,我可以将它改回来。
-
Array是一个对象。如果您使用序列化,Java 将为您创建对象的字符串表示形式。见Storing and Reading Objects -
@PM77-1 啊,好的,谢谢,我明白了,同时也找到了这个:stackoverflow.com/questions/14054828/…。你能给我写一个示例代码吗?这会有所帮助。
标签: java arrays sockets io char