【发布时间】:2014-07-01 18:09:14
【问题描述】:
尝试使用 C# 通过 TCP 连接发送数据。
string reply = "<?xml version='1.0' standalone='yes'?>
<root><ele1 type='2'/><author>patrick</author>
<address>spain</address></root>";
这是我认为问题所在:
reply = format.ProcessMessage(message); - this method returns the above string
byte[] breply = System.Text.Encoding.ASCII.GetBytes(reply);
stream.Write(breply, 0, breply.Length);
客户端的响应是:patrickspain 但我希望发送整个 XML 字符串。有人知道如何解决这个问题吗?
以下是我的PHP客户端代码:
<?php
$host = "127.0.0.1";
$port = 7890;
$message = "Test Message";
echo "Message To server :".$message;
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
$result = socket_connect($socket, $host, $port) or die("Could not connect to server\n");
socket_write($socket, $message, strlen($message)) or die("Could not send data\n");
$result = socket_read ($socket, 1024) or die("Could not read server response\n");
echo "Reply From Server : ".$result;
socket_close($socket);
?>
【问题讨论】:
-
我的猜测是所有数据都在发送,但是您的客户端(或您用来查看响应的工具)正在剥离 Xml 元素。您可以检查客户端收到的 number 个字节吗?
-
我不知道该怎么做。客户端是一个用 PHP 编码的简单测试应用程序,它只是在浏览器中打印出来自 C# 的响应
-
我刚刚意识到问题不在于 C#,但我怀疑 PHP 客户端已经剥离了我的 XML