Red de conocimiento informático - Computadora portátil - La programación del socket de red C# puede transmitir después de que el cliente sale, el host sigue recibiendo 0.

La programación del socket de red C# puede transmitir después de que el cliente sale, el host sigue recibiendo 0.

Escribí un socket aleatorio antes, no sé si lo usarás o no

usando System;

usando System.Collections.Generic;

usando System.Text;

usando System.Net;

usando System.Net.Sockets //Puedes usar sockets

usando System.Threading; // Se pueden usar varios subprocesos

espacio de nombres threadtcpclient

{

clase Threadtcpserver

{

servidor de socket privado;

público Threadtcpserver()

{

IPAddress local = IPAddress.Parse("192.168.0.66");

IPEndPoint iep = nuevo IPEndPoint(local, 13000);

servidor = nuevo Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Will socket Vinculará la palabra al punto final local

server.Bind(iep);

//Escuche en el número de puerto local 13000

server.Listen( 20 );

Console.WriteLine("Esperando a que el cliente se conecte..."

while (true)

{

);

//Obtener el socket que contiene información del cliente

Socket client = server.Accept();

//Crear un objeto de hilo de servicio de mensajes

ClientThread newclient = new ClientThread(client);

//Delegar el método ClientService de la clase ClientThread al hilo

Thread newthread = new Thread(new ThreadStart(newclient.ClientService));

// Iniciar el hilo del servicio de mensajes

newthread.Start();

}

}<

/p>

static void Main(string[] args)

{

Instancia de Threadtcpserver = new Threadtcpserver()

}

}

class ClientThread

{

//La variable de conexiones representa el número de conexiones

public static int conexiones = 0;

servicio de socket público

int i;

hilo de cliente público (socket de cliente)

{

// El objeto de servicio toma el control del mensaje

this.service = clientsocket;

}

public void ClientService()

{

p>

String data = null;

byte[] bytes = nuevo byte[1024];

if (servicio!= null)

{

conexiones

}

Console.WriteLine("Nueva conexión de cliente establecida: {0} conexiones", conexiones

try

{

while ((i = service.Receive(bytes)) != 0)

{

datos = System.Text.Encoding.ASCII.GetString(bytes, 0, i);

Console.WriteLine("Datos recibidos: {0}", datos);

// Procesa el mensaje enviado por el cliente, aquí se convierte a letras mayúsculas

data = data.ToUpper();

byte[] msg = System.Text.Encoding.ASCII .GetBytes(data);

//Enviar un mensaje de respuesta

service.Send(msg);

<

p> Console.WriteLine("Datos enviados: {0}", datos

}

}

catch

{

}

//Cerrar el socket

service.Close();

conexiones--;

Console.WriteLine("Conexión cerrada del cliente: {0} conexiones", conexiones

}

}

}

); usando System;

usando System.Collections.Generic;

usando System.Text;

usando System.Net;

usando System .Net.Sockets;

usando System.IO;

espacio de nombres threadtcpclient

{

clase multithreadclient

{

static void Main(string[] args)

{

Cliente de socket;

byte[] buf = nuevo byte[ 1024];

entrada de cadena;

IPAddress local = IPAddress.Parse("192.168.0.68");

IPEndPoint iep = nuevo IPEndPoint (local, 13000 );

intente

{

cliente = nuevo Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

client.Connect(iep);

}

catch (SocketException)

{

Console.WriteLine(" No se puede conectar a ¡el servidor!");

return;

}

while (verdadero)

{

/ /Ingresa un mensaje en la consola

input = Console.ReadLine();

//Ingrese salida para desconectarse del servidor

if (input == "exit")

{

break;

}

try

{

//Si el mensaje está vacío, no estará enviado

if (input != "")

{

client.Send(Encoding.ASCII.GetBytes(input));

//Obtener el número total de bytes realmente recibidos

int rec = client.Receive(buf);

Console.WriteLine(Encoding.ASCII.GetString(buf, 0 , rec ));

}

}

captura

{

}

}

Console.WriteLine("Desconectarse del servidor...");

client.Close()

}

;

}

}

Utilice el puerto serie para comunicarse con el comando hardware ~AT, hay un puerto serie de control de comunicación en C#. Configure el puerto, la velocidad en baudios, etc. Puede conectarse y luego comunicarse enviando comandos ap y analizando la información recibida.