はい私はsunのチュートリアルを見ましたが、私の場合は助けませんでしたが、最初のコマンドだけを転送しました。整数またはバイト配列をJavaのソケット経由で転送する方法
I`veメソッド送信側で
public void openConnection() throws IOException{
serverSocket = new ServerSocket(5346);
Socket simSocket = serverSocket.accept();
is = simSocket.getInputStream();
os = simSocket.getOutputStream();
writer = new PrintWriter(os);
isReader = new InputStreamReader(is);
reader = new BufferedReader(isReader);
System.out.println("Connection succesfull.");
}
と
public void sendTo(int command) {
try {
writer.println(command);
writer.flush();
} catch(Exception e) {
System.out.println("Error sending command to the robot");
System.out.println(e.toString());
}
}
、及び
public static void setUpConnection() {
try {
socket = new Socket(InetAddress.getLocalHost(), 5346);
is = new InputStreamReader(
socket.getInputStream());
reader = new BufferedReader(is);
writer = new PrintWriter(socket.getOutputStream());
System.out.println("Simulator: connection succesful");
} catch (IOException e) {
e.printStackTrace();
}
}
と
while (true) {
intCommand = reader.read();
ett = reader.readLine(); // does nothing, but without this line it doesn't work
command = (char) intCommand;
を得受信側では
です。これは、charまたはcharのascii番号を完全に送信します。私が必要とするのは、このコードを変更して整数を送信するか、文字の代わりにバイトの配列を単純に送信することです。私は単純にInputStreamとOutputStreamを残すだけで、最初のコマンドを受け取り、これらのメソッドはsendToを介して送信されたものを継続的に受信します。ソケットのドキュメントでさえ、彼らはcharsのみを送るexmampleしか持っていません。
シリアル化を調べる(シリアル化を実装するクラスを作成するか、利用可能なシリアル化APIを使用する)。 – theglauber