이것은 CSHARP와 .NET 라이브러리 (7.0)를 사용하는 작은 프로젝트입니다. 이 프로그램을 사용하면 한 번에 여러 웹 소켓 (클라이언트 -> 서버 및 서버 -> 클라이언트 모두 지원)을 설정할 수 있습니다. 이는 .NET 7.0을 지원하는 Linux 기반 운영 체제 (예 : dotnet 패키지 사용)에서 실행되기위한 것입니다. 이것이 Windows에서 작동 할 가능성이 있지만 테스트를 시도하지 않았습니다. 이 프로젝트는 .NET 8.0과도 작동해야하지만 테스트하지 않았습니다.
이 프로그램은 매우 간단한 일대일 채팅방으로 작동합니다. 연결되면 클라이언트와 서버는 기본 UTF-8 문자 메시지를 서로 교환 할 수 있습니다.
이 프로젝트를 통해 CSHARP/.NET의 웹 소켓에 대한 자세한 내용은 비동기 방법을 통해 동시에 데이터를 수신/전송하는 여러 웹 소켓을 관리하는 방법과 함께했습니다.
다음은 프로그램의 기능을 보여주는 GIF 비디오입니다. 우리는 데모에서 SSL을 사용하지 않으며 127.0.0.1 (LocalHost)을 사용하여 로컬로 클라이언트 및 서버를 설정합니다.

이 프로젝트를 실행하려면 .NET 7.0 라이브러리가 필요합니다. Linux 배포판이 지원하는 경우이 라이브러리를 수동으로 또는 패키지 관리자를 통해 설치할 수 있습니다.
Ubuntu/Debian 기반 시스템에서 아래 명령을 사용하여 DotNet을 설치할 수 있습니다.
# 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.0프로젝트를 구축하고 실행하려는 경우. 다음 명령을 사용할 수 있습니다.
dotnet run프로젝트 만 구축하려면 다음 명령을 사용할 수 있습니다.
dotnet build 위의 명령을 수행 할 때 csharp-websockets.csproj 파일과 동일한 디렉토리에 있는지 확인하십시오.
다음 명령 줄 인수가 뒷받침됩니다.
./conf.json 찾습니다. 파일 시스템의 구성 파일은 JSON 구문을 통해 읽고 구문 분석됩니다. 확인하는 기본 경로는 ./conf.json 입니다. 그러나 위에 나열된 구성 경로 명령 줄 옵션을 통해 변경할 수 있습니다.
구성 옵션은 다음과 같습니다. 아래를 복사하는 경우 주석 ( // )을 제거해야합니다. 오류없이 구성을 복사하려면 conf.ex.json 파일을 살펴 보는 것이 좋습니다.
{
// 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
}
]
}
프로그램을 시작할 때 사용할 수있는 다음 명령이 표시됩니다.
<ip> <port> <ssl> - <ip> : <port> 에 대한 새로운 클라이언트 연결을 설정하십시오. <ssl> 은 선택 사항이며 SSL을 비활성화하려면 NO를 사용하십시오.<idx> - 인덱스 <idx> 에서 클라이언트 연결을위한 메시지 보내기/수신.<idx> - Index <idx> 에서 Listen Server의 메시지 보내기/수신.<idx> - index <idx> 에서 클라이언트를 제거하십시오.<idx> - index <idx> 에서 서버를 제거하십시오. cc 및 cs 명령을 통해 채팅 세션에 연결되면 메시지 q 를 보내 현재 채팅 세션을 분리하고 기본 메뉴로 돌아갈 수 있습니다.