2014-05-13 198 views
0

試圖通過TCP連接使用C#發送數據。通過TCP連接發送XML - 僅發送數據

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

我的猜測是所有的數據都在發送,但是你的客戶端(或者你用來查看響應的工具)正在剝離出Xml元素。你能檢查在客戶端收到的_number_字節數嗎? –

+0

我不知道該怎麼做。客戶端是一個簡單的測試應用程序編碼在PHP中,它只是打印出C#在瀏覽器中的響應 –

+0

我剛剛意識到這個問題不是用C#,但我懷疑PHP客戶端一直在剝離我的XML –

回答

1

瀏覽器接收數據就好了。它試圖將XML顯示爲HTML,這意味着您只會看到每個節點的內部文本,在這種情況下是作者的名字。

右鍵單擊該頁面並單擊「查看源代碼」以查看瀏覽器收到的內容。您還可以使用像Fiddler這樣的工具來調試HTTP流量。

+1

編程有一種方法有時讓我感到啞巴。謝謝,它一直工作得很好 –

+0

@ D.Rattansingh我們都去過那裏。另見http://stackoverflow.com/questions/2864303/how-to-display-xml-in-html-in-php。 – CodeCaster