Когда я пытаюсь использовать TCP / IP-соединение для отправки тех же данных на устройство Android, мне показывают исключение:
System.Net.Sockets.SocketException: только один адрес каждого сокета (протокол/ сетевой адрес / порт) обычно разрешен.
Ясно, что последнее соединение все еще работает, затем я попытался закрыть поток TCP / IP с помощью кнопки, подобной этой:
по умолчанию:
bool m_StopThread = false;
и поток:
new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
const int PORT_NO = 7800;
const string SERVER_IP = "192.168.1.118";
while (!m_StopThread)
{
//---listen at the specified IP and port no.---
IPAddress localAdd = IPAddress.Parse(SERVER_IP);
TcpListener listener = new TcpListener(System.Net.IPAddress.Any, PORT_NO);
Console.WriteLine("Listening...");
listener.Start();
//---incoming client connected---
TcpClient client = listener.AcceptTcpClient();
Console.WriteLine("Connect...");
//---get the incoming data through a network stream---
NetworkStream nwStream = client.GetStream();
byte[] buffer = new byte[client.ReceiveBufferSize];
//---read incoming stream---
int bytesRead = nwStream.Read(buffer, 0, client.ReceiveBufferSize);
//---convert the data received into a string---
string dataReceived = Encoding.ASCII.GetString(buffer, 0, bytesRead);
//---write back the text to the client---
//nwStream.Write(buffer, 0, bytesRead);
byte[] msg = System.Text.Encoding.ASCII.GetBytes(m);
Console.WriteLine("Sending back : " + m);
// Send back a response.
nwStream.Write(msg, 0, msg.Length);
}
client.Close();
listener.Stop();
}
}).Start();
и кнопка Стоп
private void button2_Click(object sender, EventArgs e)
{
m_StopThread = true;
}
и когда я пытаюсь использовать:
listener.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
и я хочу использовать другую опцию, подключив другое устройство (новое TCP-соединение IP), новое устройство ничего мне не отправляет, просто мне нужно освободить мое TCP-соединение, когда я закрываю свою форму, чтобы создать другое из другой формы. Плз как мне это сделать?