我正在尝试创建一个将连接到另一个的第三方应用程序。应用程序之间的通信使用XML建立。我通过套接字发送消息,但我收到的消息说收到的文件是空的。我发送XML字符串的应用程序是否有任何理由接收空消息。 我是c#的新手,所以任何其他示例代码和链接都会有很大帮助。
例如,当我发送这样的ping消息时:
<?xml version="1.0" encoding="UTF-8"?>
<message msg_id=”54323” >
<ping/>
</message>\0
返回字符串应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<return_message msg_id=”54323” />\0
但我明白了:
<?xml version="1.0" encoding="UTF-8"?>
<return_error msg_id=”54323” >
<error id=”errID1” reason=”document empty” />
</return_error >\0
我的代码如下所示:
public static string sendStringRequest(String hostname, int port, string message)
{
try
{
byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
TcpClient client = new TcpClient(hostname, port);
NetworkStream stream = client.GetStream();
BinaryWriter writer = new BinaryWriter(stream, Encoding.UTF8);
writer.Write(message);
data = new Byte[256];
// String to store the response ASCII representation.
String responseData = String.Empty;
Int32 bytes = stream.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
// Close everything.
stream.Close();
client.Close();
return responseData;
}
catch (ArgumentNullException e)
{
MessageBox.Show("ArgumentNullException: " + e);
return "null";
}
catch (SocketException e)
{
MessageBox.Show("SocketException: " + e);
return "null";
}
}