-1
我想通過TCP連接發送一個對象從C#到Java,但它不起作用。 java的告訴我有一個錯誤,我不知道爲什麼通過TCP從C#客戶端發送對象(類)到Java服務器
java.io.StreamCorruptedException: invalid stream header: 3C3F786D
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at ClientThread.run(ClientThread.java:34)
at java.lang.Thread.run(Unknown Source)
我GOOGLE了它已經找到,但我的問題沒有確切的答案。我已經使用和xml序列化器序列化了我的c#類。我在互聯網上找到了這些代碼。
下面是C#代碼
var cmd = new Command();
cmd.setType(5);
var xmlSerializer = new XmlSerializer(typeof(Command));
using (var memoryStream = new MemoryStream())
{
xmlSerializer.Serialize(memoryStream, cmd);
}
String sendMsg = message + ";";
try
{
if (tcp_stream.CanWrite)
{
xmlSerializer.Serialize(tcp_stream, cmd);
}
tcp_stream.Flush();
}
catch (Exception exception)
{
MessageBox.Show("Error..... " + exception);
}
和Java服務器代碼
try {
ObjectOutputStream sOutput = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream sInput = new ObjectInputStream(
socket.getInputStream());
this.message = (Message) sInput.readObject();
System.out.println("MessageType: " + this.message.getType());
}
catch (IOException e) {
System.out.println("Can not get message. " + e.getMessage());
e.printStackTrace();
break;
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
感謝您的任何答案。 任何幫助表示讚賞。
好吧,謝謝你:)。我想我會用JSON或XML去 – 2014-10-03 17:07:43