c# 서버 예제

서버 의 다음 명령 줄은 소켓에 연결하는 데 사용할 수있는 클라이언트 측은 현대 프로그래머의 무기고의 중요한 부분입니다. 이 기사를 읽으려면, 소켓의 광범위 한 사용을 만들고 있다 – 기사 자체, 그리고 각 이미지, 컴퓨터에 소켓을 내려와서, 그리고 아마도 두, 직장에서 이것을 읽는 경우, 라우터 뒤에. 다른 컴퓨터와 통신하면 계산 비용이 많이 드는 작업을 분산하고 데이터를 공유하는 등의 작업을 수행할 수 있습니다. 그러나 프레임워크는 예를 들어 Windows Forms와 같이 HTTP 요청을 하는 것과 같은 `표준`을 수행하지 않는 한 도구 키트만큼 좋은 도구 키트를 제공하지 않습니다. 누군가 나에게 데이터를 보내거나 내 서버에 연결하는 경우, 누군가가 내 양식의 버튼을 누르는 것처럼 이벤트를 throw하기를 원합니다. 서버는 들어오는 연결을 수신하기 시작하고 다른 논리로 진행됩니다. 연결이 있는 경우 서버는 이 메서드로 다시 전환 하 고 실행 됩니다AcceptCallBack 메서드다음 코드 송수신 현재 날짜 와 서버당신은 지금 서버와 클라이언트. 이 기본 예제를 사용할 수 있습니다. 예를 들어 서버가 파일이나 다른 색조를 받을 수도 있도록 합니다. 또는 클라이언트에 메시지를 보냅니다. 서버에서 클라이언트 목록을 얻었기 때문에 클라이언트에서 알 수 있는 무언가를 받을 수 있습니다. 먼저 우리는 우리가 어떤 연결을들을 수있는 리스너 소켓을 초기화해야합니다. 우리는 우리가 SocketType.Stream을 사용하는 이유입니다 Tcp 소켓을 사용하려고합니다.

또한 서버가 소켓 프로그래밍을 수신해야 하는 위치 포트를 지정하는 것은 네트워크에서 두 노드를 연결하여 서로 통신하는 방법입니다. 기본적으로 클라이언트가 연결하고 서버에 메시지를 보내고 서버가 소켓 연결을 사용하여 표시하는 단방향 클라이언트 및 서버 설정입니다. 한 소켓(노드)은 IP에서 특정 포트에서 수신을 수신하는 반면 다른 소켓은 다른 소켓에 연결하여 연결됩니다. 클라이언트가 서버에 도달하는 동안 서버는 수신기 소켓을 형성합니다. 서버 및 클라이언트 코드를 자세히 보기 전에 TCP/IP 모델을 자세히 살펴보고하는 것이 좋습니다. 서버에서 받는 클래스는 클라이언트에서 받는 클래스와 동일합니다. 이 라이브러리에는 여기에 대해 작성한 암호화 알고리즘을 사용하여 소켓을 보호하는 기능이 포함되어 있습니다. ClientInfo 생성자에서 암호화 유형에 대한 값을 전달하거나 BeginReceive를 호출하기 전에 암호화 유형 속성을 설정하고 서버에서 DefaultEncryptionType 속성을 설정하여 이 값을 설정할 수 있습니다 @Nudier. 루프를 통해 서버를 청취 모드로 유지합니다. 클라이언트의 여러 인스턴스를 연결할 수 있습니다. 클라이언트를 기다립니다.

TCP의 경우 서버는 들어오는 TCP 연결을 기다린 후 System.Net.Socket에서 제공하는 도구를 사용하여 TCP를 통해 이벤트 기반 클라이언트 서버 통신을 제공하는 작은 어셈블리를 작성했습니다. 또한 메시지를 사용할 필요는 없지만 메시지를 함께 유지할 수 있도록 간단한 메시지 기반 프로토콜을 지정합니다. 연결하는 클라이언트와 보낼 요청을 처리하는 서버를 만드는 것부터 시작합니다. 따라서 이를 처리하는 리스너 클래스를 만듭니다. 서버는 클라이언트와 마찬가지로 정보를 수신하고 전송할 뿐만 아니라 연결된 사람을 추적해야 합니다. 또한 현재 연결된 모든 클라이언트에 메시지를 전송하는 메시지를 브로드캐스트할 수 있는 것도 유용합니다(예: 유지 관리를 위해 서버가 중단될 예정임을 나타내는 메시지). EndAccept()에서 얻은 소켓을 사용하면 자체 만든 메서드(서버 예제 아래의 Code ClientController)를 사용하여 클라이언트를 만듭니다.