C# Language비동기 소켓


소개

비동기식 소켓을 사용하면 서버는 들어오는 연결을 수신하고 동기식 소켓과는 대조적으로 다른 논리를 수행하여 수신 대기 중일 때 주 스레드를 차단하고 응용 프로그램이 응답하지 않게되고 클라이언트가 연결될 때까지 고정됩니다.

비고

소켓 및 네트워크

내 네트워크 외부의 서버에 액세스하는 방법? 이것은 일반적인 질문이며 질문 할 때 주로 주제로 표시됩니다.

서버 측

서버의 네트워크에서 라우터를 서버로 포트 포워드해야합니다.

서버가 실행중인 PC 예 :

로컬 IP = 192.168.1.115

서버가 포트 1234를 수신 대기 중입니다.

Port 1234 라우터에서 들어오는 연결을 192.168.1.115

고객 입장에서

변경할 필요가있는 것은 IP뿐입니다. 루프백 주소에 연결하지 않고 서버가 실행중인 네트워크의 공용 IP에 연결하려고합니다. 이 IP는 여기서 얻을 수 있습니다 .

 _connectingSocket.Connect(new IPEndPoint(IPAddress.Parse("10.10.10.10"), 1234));

이제이 끝점에서 요청을 만듭니다. 10.10.10.10:1234 : 10.10.10.10:1234 라우터를 포트 포워드로 등록하면 서버와 클라이언트가 아무런 문제없이 연결됩니다.

로컬 IP에 연결하려면 루프백 주소를 192.168.1.178 또는 그와 비슷한 것으로 변경하기 만하면됩니다.

데이터 전송 중 :

데이터는 바이트 배열로 전송됩니다. 데이터를 바이트 배열로 묶어 다른쪽에 압축을 풀 필요가 있습니다.

소켓에 익숙하다면 보내기 전에 바이트 배열을 암호화 할 수도 있습니다. 이것은 누군가가 당신의 패키지를 훔치는 것을 막을 것입니다.

비동기 소켓 관련 예