このprotobufメッセージをc#で書きました
C# クライアント:
public AddressBook InitializeAdressBook() { Person newContact = new Person(); AddressBook addressBookBuilder = new AddressBook(); Person john = new Person(); john.id=1234; john.name="John Doe"; john.email="jdoe@example.com"; Person.PhoneNumber nr = new Person.PhoneNumber(); nr.number="5554321"; john.phone.Add(nr); addressBookBuilder.person.Add(john); TextBox.Text += ("Client: Initialisiert? " + addressBookBuilder.ToString()) + "\t" + "\n"; TextBox.Text += " Erster Person " + addressBookBuilder.person.First().name + "\t" + "\n"; return addressBookBuilder; }
問題
ac# クライアントからこの Java サーバーに protobuf メッセージを送信しようとしています...
Java サーバー
public ControllerThread(Socket s){ this.s = s; try { AddressBook adb = AddressBook.parseFrom(s.getInputStream()); System.out.println("Server: Addressbook:" + adb.getPersonCount()); } catch (IOException e) { System.out.println("Server: BufferedReader oder PrintWriter von ThermoClient konnte nicht erstellt werden"); e.printStackTrace(); } }
}
質問:
このメッセージを Java サーバーに送信できるように、このメッセージをバイト配列にシリアル化する必要があります... 残念ながら、メソッドProtoBuf.Serializer.Serializeはバイト配列を返しません。では、それをバイト配列としてシリアル化し、Java サーバーに送信するにはどうすればよいでしょうか? どんな助けでも感謝します!