Я пытаюсь подключиться к серверу UAP (используемому для отправки и получения сообщений USSD в Huawei), используя класс 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 для подключения и получения данных с сервера или нет?
CodeScheme
на 0x48 и закодировать строки в UTF-16. - person Afshin Mehrabani   schedule 23.10.2013