Este es un pequeño proyecto que utiliza CSHARP y la Biblioteca .NET (7.0). Este programa le permite establecer múltiples sockets web a la vez (cliente -> servidor y servidor -> Cliente compatibles). Esto está destinado a ejecutarse en sistemas operativos basados en Linux que admiten .NET 7.0 (por ejemplo, usando el paquete dotnet ). Es posible que esto funcione con Windows, pero no he intentado probarlo. Este proyecto también debería funcionar con .NET 8.0, pero no lo he probado también.
Este programa funciona como una sala de chat uno a uno muy simple. Cuando se conectan, el cliente y el servidor pueden intercambiar mensajes de texto básicos de UTF-8 entre sí.
Hice este proyecto para obtener más información sobre los enchufes web en CSHARP/.NET junto con cómo administrar múltiples sockets web que reciben/envían datos simultáneamente a través de métodos asíncronos.
Aquí hay un video GIF que demuestra la funcionalidad del programa. No usamos SSL en nuestra demostración y establecemos el cliente y el servidor localmente utilizando 127.0.0.1 (localhost).

Se requiere la biblioteca .NET 7.0 para ejecutar este proyecto. Puede instalar esta biblioteca manualmente o a través de un administrador de paquetes si su distribución de Linux lo admite.
En los sistemas basados en Ubuntu/Debian, puede instalar Dotnet utilizando los siguientes comandos.
# Typically this is only required for Debian.
wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt update
# Install .NET 7.0.
sudo apt install -y dotnet-sdk-7.0Si desea construir y ejecutar el proyecto. Puede usar el siguiente comando.
dotnet runSi solo desea construir el proyecto, puede usar el siguiente comando.
dotnet build Asegúrese de que esté en el mismo directorio que el archivo csharp-websockets.csproj al realizar los comandos anteriores.
Se respaldan los siguientes argumentos de línea de comando.
./conf.json . Se lee y analiza un archivo de configuración en el sistema de archivos a través de la sintaxis JSON. La ruta predeterminada para la que verifica es ./conf.json . Sin embargo, se puede cambiar a través de la opción de línea de comandos de ruta de configuración mencionada anteriormente.
Aquí están las opciones de configuración. Tenga en cuenta que deberá eliminar los comentarios ( // ) si se copia a continuación. Recomiendo echar un vistazo al archivo conf.ex.json si desea copiar la configuración sin ningún error.
{
// Whether to activate the listen server.
"listen": true,
// The host to listen on.
"listenHost": "127.0.0.1",
// The port to listen on.
"listenPort": 2222,
// Whether to listen with SSL.
"listenSsl": false,
// An array of startup client connections.
"startupConnections": [
{
// The startup connection host.
"host": "127.0.0.1",
// The startup connection port.
"port": 2223,
// Whether to use SSL with the startup connection.
"ssl": false
}
]
}
Al iniciar el programa, se le solicitará los siguientes comandos que puede usar.
<ip> <port> <ssl> - Establezca una nueva conexión de cliente con <ip> : <port> . <ssl> es opcional y para deshabilitar SSL, use no .<idx> - Enviar/Recibir mensajes para la conexión del cliente en el índice <idx> .<idx> - Enviar/Recibir mensajes para escuchar el servidor en el índice <idx> .<idx> - Elimine el cliente en el índice <idx> .<idx> - Elimine el servidor en el índice <idx> . Cuando se conecta a una sesión de chat a través de los comandos cc y cs , puede enviar el mensaje q para separar la sesión de chat actual y volver al menú principal.