[英]Empty message while receiving data from socket
我正在嘗試使用Socket
類連接到UAP服務器(用於在華為中發送和接收USSD消息),但是從服務器接收數據時出現問題。 我可以正確連接到服務器,也可以將數據發送到服務器,但是接收數據時出現問題。
這是我用於連接和發送消息的代碼:
IPAddress ipAddress = IPAddress.Parse("127.0.0.1"); //server
IPEndPoint remoteEP = new IPEndPoint(ipAddress, 2020);
clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(remoteEP);
//bind to socket, here I send bind message
Bind();
在Bind
函數中,我調用receive
方法從服務器獲取數據:
private static void receive()
{
try
{
// Create the state object.
StateObject state = new StateObject();
state.workSocket = clientSocket;
// Begin receiving the data from the remote device.
clientSocket.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(receiveCallback), state);
}
catch (Exception ex)
{
Console.WriteLine("receive | " + ex.ToString());
}
}//receive
在這里,您可以在連接,發送數據以及從服務器接收數據時看到我的Wireshark日志:
但是如您所見,來自服務器的最后兩條消息以紅色突出顯示,這意味着從服務器接收數據存在問題。 我也看不到data
字段的詳細信息:
我真的不知道這是什么問題,這是服務器問題嗎? 是否應該使用另一個Socket客戶端連接服務器或從服務器接收數據?
TCP重置數據包不是您的應用程序級別協議的一部分,因此不應期望您的應用程序看到它們。
確切地說,您的應用程序的不正確行為是什么,因為對於您發布的內容,我看不到任何問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.