通过TCP连接发送XML - 仅发送数据

时间:2014-05-13 21:28:16

标签: c# php xml tcp

尝试通过TCP连接使用C#发送数据。

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);

?>

1 个答案:

答案 0 :(得分:1)

浏览器接收您的数据就好了。它试图将XML显示为HTML,这意味着您只能看到每个节点的内部文本,在这种情况下是作者的名称。

右键点击该页面,然后点击&#34;查看来源&#34;看看浏览器收到了什么。您还可以使用Fiddler之类的工具来调试HTTP流量。