Когда я подключаю мобильное устройство к Wi-Fi через код, соединение успешно, но не может отправить tcp-запрос после подключения к этой сети.
Ошибка:
Система. InvalidOperationException: Операция не разрешена для неподключенных сокетов .02-25 17: 02: 21.290 I / mono-stdout (14426):
Вот мой код:
public static TResponse SendMessage<TResponse, TRequest>(TRequest Model,string lanip)
{
const int bytesize = 2048 * 2048;
try // Try connecting and send the message bytes
{
var jsonStr = JsonConvert.SerializeObject(Model);
var messageBytes = System.Text.Encoding.UTF8.GetBytes(jsonStr);
Console.WriteLine("Request:"+Encoding.UTF8.GetString(messageBytes, 0, messageBytes.Length));
var client = new TcpClient();
var result = client.BeginConnect(lanip, 5555, null, null);
var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(3));
if (!success)
{
//throw new Exception("Failed to connect.");
return default(TResponse);
}
else
{
//TcpClient client = new System.Net.Sockets.TcpClient(lanip, 5555); // Create a new connection
NetworkStream stream = client.GetStream();
client.SendTimeout = 2000;
client.ReceiveTimeout = 8000;
stream.Write(messageBytes, 0, messageBytes.Length); // Write the bytes
messageBytes = new byte[bytesize]; // Clear the message
// Receive the stream of bytes
stream.Read(messageBytes, 0, messageBytes.Length);
string str = Encoding.UTF8.GetString(messageBytes, 0, messageBytes.Length);
var responseModel = JsonConvert.DeserializeObject<TResponse>(str);
Debug.Write(str);
client.Close();
stream.Dispose();
return responseModel;
}
}
catch (Exception e) // Catch exceptions
{
Console.WriteLine(e);
}
// Return response
return default(TResponse);
}