Visual C\#.Net 네트워크 프로그램 개발-Socket 편 1/2 페이지

Visual C#.Net 네트워크 프로그램 개발-Socket 편   작성 자: 송화  작성 자: www.ASPCool.com  Microsoft.Net 프레임 워 크 는 응용 프로그램 이 인터넷 에 접근 하 는 데 계층 적 이 고 확장 가능 하 며 관할 되 는 네트워크 서 비 스 를 제공 합 니 다.이름 공간 인 System.Net 과 System.Net.Sockets 는 다양한 네트워크 응용 프로그램 을 개발 할 수 있 습 니 다.Net 류 가 사용 하 는 계층 구 조 는 응용 프로그램 이 서로 다른 제어 단계 에서 네트워크 를 방문 할 수 있 도록 합 니 다.개발 자 는 수요 에 따라 서로 다른 등급 에 따라 프로그램 을 작성 할 수 있 습 니 다.이런 단 계 는 인터넷 의 모든 수 요 를 포함 합 니 다.socket 소켓 에서 일반적인 요청/응답 까지 더욱 중요 한 것 은 이러한 계층 은 확장 할 수 있 습 니 다.인터넷 의 끊 임 없 는 확장 수요 에 적응 할 수 있다.  ISO/OSI 모델 의 7 층 구 조 를 떠 나 TCP/IP 모델 의 논리 적 측면 에서 볼 때.Net 류 는 요청/응답 층,응용 프로 토 콜 층,전송 층 을 포함 하 는 3 가지 차원 으로 볼 수 있다.WebReqeust 와 WebResponse 요청/응답 층 을 대표 하 며 Http,Tcp,Udp 를 지원 하 는 클래스 는 응용 프로 토 콜 층 을 구성 하고 Socket 클래스 는 전송 층 에 있 습 니 다.다음 과 같이 표시 할 수 있 습 니 다.  이 를 통 해 알 수 있 듯 이 전송 층 은 이 구조의 맨 밑 에 위치 하고 위의 응용 프로 토 콜 층 과 요청/응답 층 이 응용 프로그램의 특수 한 수 요 를 만족 시 키 지 못 할 때 이 층 을 사용 하여 Socket 소켓 프로 그래 밍 을 해 야 한다.  넷 에서 System.Net.Sockets 네 임 스페이스 는 네트워크 접근 을 엄 격 히 통제 해 야 하 는 개발 자 에 게 제공 되 었 다. Windows Sockets (Winsock) 인터페이스의 위탁 관리 실현.System.Net 네 임 스페이스 의 모든 다른 네트워크 접근 클래스 는 이 소켓 구현 위 에 세 워 져 있 습 니 다.예 를 들 어 TCPClient,TCPListener 등 입 니 다. 화해시키다 UDPClient 클래스 패키지 생 성 Internet 의 TCP 화해시키다 UDP 연결 에 대한 상세 한 정보;NetworkStream 클래스 는 네트워크 접근 에 사용 되 는 기본 데이터 흐름 등 을 제공 합 니 다.흔히 볼 수 있 는 많은 인터넷 서 비 스 는 Socket 의 흔적 을 볼 수 있 습 니 다.예 를 들 어 Telnet,Http,Email,Echo 등 서 비 스 는 통신 프로 토 콜 프로 토 콜 의 정의 가 다 르 지만 그 기본 적 인 전송 은 모두 채 용 된 Socket 입 니 다.  사실 Socket 은 스 트림 처럼 데이터 채널 로 볼 수 있 습 니 다.이 채널 은 응용 프로그램 엔 드(클 라 이언 트)와 원 격 서버 엔 드 사이 에 설 치 된 다음 에 데이터 의 읽 기(수신)와 쓰기(전송)는 모두 이 채널 을 대상 으로 합 니 다.  이 를 통 해 알 수 있 듯 이 응용 프로그램 이나 서버 에서 Socket 대상 을 만 든 후에 Send/CentTo 방법 으로 연 결 된 Socket 에 데 이 터 를 보 내 거나 Receive/ReceiveFrom 방법으로 Socket 에 연 결 된 데 이 터 를 받 을 수 있 습 니 다.  Socket 프로 그래 밍,.NET 프레임 Socket 종류 Winsock32 API 제 공 된 소켓 서비스의 위탁 관리 코드 버 전.그 중에서 네트워크 프로 그래 밍 을 실현 하기 위해 대량의 방법 을 제공 했다.대부분 상황 에서 Socket 클래스 방법 은 데 이 터 를 본 컴퓨터 로 봉 하 는 것 입 니 다. Win32 사본 에서 필요 한 안전 검 사 를 처리 합 니 다.하면,만약,만약... API 함수,그러면 Socket 류 로 네트워크 프로그램 을 만 드 는 것 은 매우 쉬 울 것 입 니 다.물론 접촉 하지 않 았 다 면 어렵 지 않 았 을 것 입 니 다.아래 설명 을 따라 Socket 류 를 사용 하여 windows 를 개발 하 는 것 을 알 게 될 것 입 니 다. 네트워크 응용 프로그램 은 원래 찾 을 수 있 는 규칙 이 있 었 는데,대부분 상황 에서 대체적으로 같은 절 차 를 따 랐 다.  사용 하기 전에 먼저 Socket 대상 의 인 스 턴 스 를 만들어 야 합 니 다.이것 은 Socket 류 의 구조 방법 을 통 해 이 루어 질 수 있 습 니 다.  public Socket(AddressFamily addressFamily,SocketType socketType,ProtocolType protocolType);  addressFamily 매개 변수 지정 Socket 사용 할 주소 지정 방안,socketType 매개 변수 지정 Socket 프로 토 콜 타 입 매개 변수 지정 Socket 사용 프로 토 콜.  다음 예제 문 구 를 만 듭 니 다. Socket,기반 으로 사용 할 수 있 습 니 다. TCP/IP 네트워크 인터넷)에서 통신 하 다.  Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);  하면,만약,만약... UDP ...이 아니 라 TCP,다음 예제 와 같이 프로 토 콜 형식 을 변경 해 야 합 니 다.  Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);  만 들 면 Socket,클 라 이언 트 에 서 는 Connect 방법 으로 지정 한 서버 에 연결 하고 send/sendto 방법 으로 원 격 서버 에 데 이 터 를 보 낸 후 Receive/ReceiveFrom 를 통 해 서버 에서 데 이 터 를 받 을 수 있 습 니 다.서버 쪽 에 서 는 지정 한 인 터 페 이 스 를 Bind 방법 으로 연결 하여 Socket 을 로 컬 종결 점 과 연결 시 키 고 Listen 방법 으로 이 인터페이스 에 있 는 요청 을 확인 해 야 합 니 다.사용자 쪽 의 연결 을 들 었 을 때 Accept 를 사용 하여 연결 작업 을 완료 하고 새로운 Socket 을 만들어 서 들 어 오 는 연결 요청 을 처리 해 야 합 니 다.다 쓰다 Socket 다음 Shutdown 방법 비활성화 Socket Close 방법 닫 기 Socket。그 동안 사용 한 방법/함 수 는 다음 과 같다.  Socket.Connect 방법:원 격 장치 에 연결 하기  public void Connect(EndPoint remoteEP)(리 셋 방법 이 있 음)  Socket.Send 방법:데이터 의 지시 위치 부터 데 이 터 를 연결 로 보 냅 니 다. Socket。  public int Send(byte[], int, SocketFlags);(무 거 운 짐 을 싣 는 방법 이 있다)  Socket.SendTo 방법. 데 이 터 를 특정 종결 점 으로 보 냅 니 다.  public int SendTo(byte[], EndPoint);(무 거 운 짐 을 싣 는 방법 이 있다)  Socket.Receive 방법:데 이 터 를 연 결 된 것 에서 Socket 수신 버퍼 의 특정 위 치 를 받 습 니 다.  public int Receive(byte[],int,SocketFlags);  Socket.ReceiveFrom 방법:데이터 버퍼 의 특정 위치의 데 이 터 를 수신 하고 끝 점 을 저장 합 니 다.  public int ReceiveFrom(byte[], int, SocketFlags, ref EndPoint);  Socket.Bind 방법 Socket 로 컬 끝 점 과 연결:  public void Bind( EndPoint localEP );  Socket.Listen 방법: Socket 수사 상태 에 두다.  public void Listen( int backlog );  Socket.Accept 방법:새 것 만 들 기 Socket 들 어 오 는 연결 요청 을 처리 합 니 다.  public Socket Accept();  Socket.shutdown 방법:어떤 것 을 사용 하지 않 습 니 다. Socket 위의 발송 과 수신  public void Shutdown( SocketShutdown how );  Socket.close 방법:강제 Socket 연결 닫 기  public void Close();  이 를 통 해 알 수 있 듯 이 상기 여러 방법 은 EndPoint 유형의 매개 변 수 를 포함 하고 인터넷 에서 TCP/IP 유일한 표지 장 치 는 네트워크 주소 와 서비스 포트 번 호 를 사용 합 니 다.네트워크 주소 표지 네트워크 의 특정 장치;포트 번호 표 지 는 이 장치 에 연결 할 특정한 서비스 입 니 다.네트워크 주소 와 서비스 포트 의 조합 을 종결 점 이 라 고 합 니 다. .NET 프레임 EndPoint 클래스 는 이 종결 점 을 나타 내 고 네트워크 자원 이나 서 비 스 를 나타 내 는 추상 적 인 정 보 를 제공 하 며 네트워크 주소 등 정 보 를 표시 합 니 다.Net 은 지원 되 는 모든 주소 족 에 대해 서도 정 의 했 습 니 다. EndPoint 자식...에 대하 여 IP 주소 족 IPEndPoint。IPEndPoint 호스트 에 연 결 된 프로그램 에 필요 한 호스트 와 포트 정 보 를 포함 하 며,조합 서 비 스 를 통 해 호스트 IP 주소 와 포트 번호,IPEndPoint 를 포함 합 니 다. 클래스 는 서비스의 연결 점 에 형성 된다.  IPEndPoint 클래스 를 사용 할 때 컴퓨터 IP 주소 와 관련 될 수 밖 에 없습니다.Net 에는 IP 주소 인 스 턴 스 가 두 가지 있 습 니 다.  IPAddress 클래스:IPAddress 클래스 포함 컴퓨터 IP 인터넷 주소.그 Parse 방법 은 IP 주소 문자열 IPAddress 실례다음 문 구 를 만 듭 니 다. IPAddress 실례:  IPAddress myIP = IPAddress.Parse("192.168.1.2");  Dns 클래스:사용 TCP/IP Internet 서비스의 응용 프로그램 은 도 메 인 네 임 서 비 스 를 제공한다.그 해결 방법 조회 DNS 서버 는 사용자 의 우호 적 인 도 메 인 이름(예 를 들 어"host.contoso.com")을 디지털 형식 으로 표시 합 니 다. Internet 주소 192.168.1.1)。Resolve 방법 하나 되 돌리 기 IPHostEnty 인 스 턴 스,이 인 스 턴 스 는 요청 한 이름 의 주소 와 별명 목록 을 포함 합 니 다.대다수 상황 에서 사용 할 수 있다 AddressList 배열 에서 돌아 오 는 첫 번 째 주소 입 니 다.다음 코드 가 져 오기 IPAddress 인 스 턴 스,이 인 스 턴 스 는 서버 를 포함 합 니 다. host.contoso.com 의 IP 주소  IPHostEntry ipHostInfo = Dns.Resolve("host.contoso.com");  IPAddress ipAddress = ipHostInfo.AddressList[0];  GetHostName 방법 으로 IPHostEntry 인 스 턴 스 를 얻 을 수 있 습 니 다:  IPHosntEntry hostInfo=Dns.GetHostByName("host.contoso.com")  이상 의 방법 을 사용 할 때 다음 과 같은 몇 가지 이상 을 처리 해 야 할 수도 있 습 니 다.  SocketException 이상:Socket 에 접근 할 때 운영 체제 에 오류 가 발생 했 습 니 다.  Argument NullException 이상:매개 변 수 는 빈 참조 로 인 한 것 입 니 다.  ObjectDisposedException 이상:소켓 이 닫 혀 서 발생  위의 지식 을 습득 한 후,아래 코드 는 이 서버 호스트( host.contoso.com 의 IP 원 격 종결 점 을 만 들 기 위해 주소 와 포트 번 호 를 조합 합 니 다:  IPEndPoint ipe = new IPEndPoint(ipAddress,11000); 
1 2 다음 페이지 전문 을 읽다

좋은 웹페이지 즐겨찾기