簡體   English   中英

從套接字接收數據時出現空消息

[英]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日志:

Wireshark日志

但是如您所見,來自服務器的最后兩條消息以紅色突出顯示,這意味着從服務器接收數據存在問題。 我也看不到data字段的詳細信息:

消息的細節

我真的不知道這是什么問題,這是服務器問題嗎? 是否應該使用另一個Socket客戶端連接服務器或從服務器接收數據?

TCP重置數據包不是您的應用程序級別協議的一部分,因此不應期望您的應用程序看到它們。

確切地說,您的應用程序的不正確行為是什么,因為對於您發布的內容,我看不到任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM