我在使用.NET 3.5(C#)編寫的TCP服務器\客戶端時出現問題。TCP上的字節[256]限制爲5個字符
每當我使用下面的代碼傳輸數據時,只有5個字符傳輸到服務器。如何修復我的代碼以便我有5個以上的字符傳輸?
TcpClient client = new TcpClient(connectto.ToString(), portto);
Stream s = client.GetStream();
StreamReader sr = new StreamReader(s);
StreamWriter sw = new StreamWriter(s);
Byte[] data = new Byte[256];
data = System.Text.Encoding.ASCII.GetBytes("auth:" + adminPASS.Text);
s.Write(data, 0, data.Length);
data = new Byte[256];
String responseData = String.Empty;
Int32 bytes = s.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
服務器只獲取任何傳輸的前5個字符。其餘的都丟失了。
你能驗證adminPASS.Text是不是空的?寫完之後還要調用s.Flush()。 – payo
即使我添加一個安全措施以確保文本框的值不爲空,但似乎數據仍然沒有通過。我也有一個字符串,文字「連接」,這是在初始連接到服務器發送。在Visual Studio的輸出日誌中,我得到這個「獲得消息連接」,然後直接在它下面獲得「消息」。我也嘗試使用s.Flush(),並沒有改變。 – foxbot
你知道你沒有發送'Byte [256]'數據,你創建了一個256個大數組,但是當你執行'data = System.Text.Encoding ...時,它立即扔掉它''就像你一樣'Byte [] data = ystem.Text.Encoding ...'而不是。 –