c# tcpserver 예제

소스에는 2 개의 프로젝트, TcpServer 및 TestApp가 포함되어 있습니다 (TestApp는 예제로 제공되며 그렇지 않으면 무시할 수 있습니다). TcpServer 프로젝트를 솔루션에 추가한 후 컴파일한 후 도구 상자에서 TcpServer 구성 요소를 양식, 서비스, 구성 요소 또는 기타 컨테이너에 배치할 준비가 된 것을 찾아야 합니다. 또는 수동으로 구성 요소를 도구 상자에 추가하고 구성 요소로 사용하거나 프로젝트 참조를 수동으로 추가한 다음 생성자를 직접 호출할 수 있습니다. 서버에 연결할 클라인트가 없는 경우 모든 Windows 시스템에서 사용할 수 있는 텔넷을 사용할 수 있습니다. 들어오는 연결 시도를 수락하는 비동기 작업을 시작합니다. .Net Core와 사랑에 빠진 이유 및 .Net Core의 미래는 지정된 로컬 IP 주소 및 포트 번호에서 들어오는 연결 시도를 수신하는 TcpListener 클래스의 새 인스턴스를 초기화합니다. HandleDeivce 메서드는 클라이언트에서 바이트 스트림을 수신 하 고 메시지와 함께 회신 하 고 다시 클라이언트에서 듣기 시작 합니다. 4. 클라이언트가 연결되면 서버가 NetworkStream을 사용하여 전송됩니다. `안녕하세요` 메시지입니다.

문자열을 직접 보내고 받을 수 없기 때문에 메산지를 바이트 배열로 변환해야 합니다. OnConnect는 새 클라이언트가 연결될 때 호출되며, OnDataAvailable은 이전에 연결된 클라이언트가 버퍼에 읽을 준비가 된 무언가가 있을 때 호출됩니다. 1. 우리는 System.Net 네임 스페이스와 System.Net.Sockets를 포함합니다. 파생 클래스에 제공된 코드가 정적 멤버 나 다른 개체와 같은 컨텍스트 외부의 일부 리소스에 액세스하려고 하지 않는 한 이 사실은 해당되어야 합니다. 어떤 방법으로, 당신이 이것을 다시 확인 하는 경우 그것은 더 나은. 또한 파생 된 클래스에 제공 된 코드가 차단 되지 않습니다 보장 하는 것이 매우 중요 하 고 메서드는 더 이상 데이터를 처리할 수 없는 한 빨리 종료 됩니다. 이 코드는 스레드 풀에서 스레드에서 실행되므로 다른 작업이 완료될 때까지 차단하지 않도록 해야 합니다. 몇 달 전부터 작은 프로젝트에서 일해 왔으며, 어느 시점에는 응용 프로그램 간에 명령과 데이터를 교환하기 위해 작은 TCP 서비스를 구현해야 했습니다. 대부분의 데이터가 XML을 사용하여 전송되기 때문에 웹 서비스를 사용할 생각했지만 내 자신의 TCP 기반 서비스 및 모든 것을 만들 수있는 방법을 조사하는 데 도움이 되지 못했습니다. 글쎄, 많은 기사, 코드 샘플 및 책을 서핑 한 후, 나는 다른 사람들에게 도움이 되기를 바랍니다 .

이 문서는 연결된 소스 코드 및 파일과 함께 코드 프로젝트 오픈 라이선스(CPOL) TcpListener 클래스에서 동기화 모드 차단에서 들어오는 연결 요청을 수신하고 수락하는 간단한 메서드를 제공합니다.