Programación del hardware del zócalo
Utilizar el sistema;
Utilizar el sistema. recolectar. Genérico;
Uso del sistema. Texto;
Usar System.Net;
Usar System.Net. Net .Sockets//Puedes usar sockets
Usa el sistema. Threading; //Se pueden utilizar subprocesos múltiples.
Espacio de nombres threadtcpclient
{
Clase Threadtcpserver
{
Servidor de socket privado;
p>
Subproceso públicotcpserver()
{
Dirección IP local = Dirección IP. parse(" 192.168.0 . 66 ");
IPEndPoint IEP = nuevo IPEndPoint(local, 13000);
Servidor = nuevo Socket(AddressFamily.Internet, SocketType.Stream, protocolo type.TCP);
// Vincula el socket al punto final local
Servidor. bind(IEP);
//Escuche el número de puerto local 13000.
Servidor. Escuchar(20);
Consola. WriteLine("Esperando conexión del cliente...");
while(true)
{
//Obtener el socket que contiene la información del cliente en Word p>
Socket cliente = servidor. Accept();
//Crear un objeto de hilo de servicio de mensajes
ClientThread newclient = new ClientThread (cliente);
//Cambiar el ClientService de ClientThread clase El método se delega al hilo.
Hilo nuevo hilo = nuevo hilo (inicio de nuevo hilo (nuevo cliente. servicio de cliente)
//Iniciar el hilo del servicio de mensajes
Nuevo hilo. start();
}
}
static void Main(string[] args)
{
Instancia de Threadtcpserver = new Threadtcpserver();
}
}
Clase ClientThread
{
/ La variable /connections representa el número de conexiones.
Conexión int estática pública = 0;
Servicio de socket público;
int I
Subproceso de cliente público (socket Socket de cliente). )
{
//Objeto de servicio//Asumir el control del mensaje.
this.service = clientsocket
}
public void ClientService()
{
Datos de cadena = null
byte[] bytes = nuevos bytes[1024];
if (servicio!=null)
{
conexiones;
}
Consola. WriteLine("Nueva conexión de cliente establecida: {0} conexión", conexión);
Intente
{
while ((i = service.
recibir(bytes))! = 0)
{
datos = sistema. texto .codificación .ascii .getstring(bytes, 0,I); WriteLine("Datos recibidos: {0} ", datos);
//Procesa el mensaje enviado por el cliente y conviértelo a letras mayúsculas aquí.
datos = datos. ToUpper();
byte[] msg = sistema. Text.Encoding.ASCII.GetBytes(data);
//Enviar mensaje de respuesta.
Servicio. Enviar(msg);
Consola. WriteLine("Datos enviados: {0} ", datos);
}
}
Captura
{
}
//Cerrar el socket
servicio. close();
Conectar-;
Consola. WriteLine("Conexión cerrada del cliente: {0} conexiones", conexión);
}
}
}
Usar el sistema ;
Usa el sistema. recolectar. Genérico;
Uso del sistema. Texto;
Usar System.Net;
Usar System.Net. Net .Sockets
Utiliza el sistema. Io;
Threadtcpclient de espacio de nombres
{
Clase de cliente multiproceso
{
static void Main( string[] args)
{
Cliente de socket;
byte[] buf = nuevo byte[1024];
p>
Entrada de cadena;
Dirección IP local = Dirección IP. parse(" 192.168.0 . 68 ");
IPEndPoint IEP = nuevo IPEndPoint(local, 13000);
Intente
{
cliente = nuevo Socket(AddressFamily.Internet, SocketType.Stream, ProtocolType.TCP);
Cliente. Conexión(IEP);
}
catch (SocketException)
{
Consola. WriteLine("¡No se puede conectar al servidor!");
Return;
}
while(true)
{
//Ingrese un mensaje en la consola.
Entrada=consola. ReadLine();
//Ingrese la salida para desconectarse del servidor.
if (input == "salir")
{
Pausa;
}
Intentar
{
//Si el mensaje está vacío, no se enviará.
if (input != "")
{
Cliente. Send(Encoding.ASCII.GetBytes(input));
//Obtiene el número total de bytes realmente recibidos.
int rec=cliente. Recibir(buf);
Consola. WriteLine(codificación.
ASCII.GetString(buf, 0, rec));
}
}
Captura
{
}
}
Consola. WriteLine("Desconectarse del servidor...");
Cliente. close();
}
}
}
Utilice el comando serialPort ~ AT para comunicarse con el hardware. comunicación portuaria en controles C#. Configure el puerto y la velocidad en baudios, luego comuníquese enviando comandos ap y analizando la información recibida.