C# 从套接字接收数据时为空消息

C# 从套接字接收数据时为空消息,c#,sockets,ussd,C#,Sockets,Ussd,我正在尝试使用Socket类连接到UAP服务器(在华为用于发送和接收USSD消息),但从服务器接收数据时出现问题。我可以正确连接到服务器,也可以向服务器发送数据,但接收数据时遇到问题 这是我连接和发送邮件的代码: IPAddress ipAddress = IPAddress.Parse("127.0.0.1"); //server IPEndPoint remoteEP = new IPEndPoint(ipAddress, 2020); clientSocket = new 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日志:

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

但正如您所看到的,来自服务器的最后两条消息用红色突出显示,这意味着从服务器接收数据时存在问题。此外,我没有看到
数据
字段的详细信息:


我真的不知道是什么问题,这是不是服务器的问题?我是否应该使用另一个套接字客户端从服务器连接和接收数据?

TCP重置数据包不是应用程序级协议的一部分,应用程序不应该看到它们


你的应用程序到底有什么不正确的行为,因为就你发布的内容而言,我没有发现任何问题。

你能解释一下你所说的
TCP重置数据包是什么意思吗?
?你从wireshark收到的红色突出显示的条目。它们是RST ACK数据包(请看您的屏幕截图)。您不应该在应用程序中看到这些内容。也没有与它们相关的数据。我使用UAP协议发送和接收英语的ussd消息,您尝试过阿拉伯语消息吗?阿拉伯文邮件显示为几个问号,如下所示???在电话上,有任何线索吗???@MSUH是的,我正在通过UAP发送阿拉伯语/波斯语文本,您只需将
CodeScheme
设置为0x48,并将字符串编码为UTF-16。谢谢,问题已经解决,服务提供商方面出现了一些问题