我正在尝试使用类连接到 UAP 服务器(用于在华为发送和接收 USSD 消息),Socket
但是从服务器接收数据时出现问题。我可以正确连接到服务器,也可以向服务器发送数据,但接收数据有问题。
这是我用于连接和发送消息的代码:
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 客户端来连接和接收来自服务器的数据?