C# 요청한 주소는 해당 컨텍스트에서 유효하지 않습니다 해결 방법 (The requested address is not valid in the context)
C#에서 요청한 주소는 해당 컨텍스트에서 유효하지 않습니다. 오류가 발생할 때 해결 방법에 대해 알아보도록 합시다. 우선 컨텍스트의 사전적인 정의는 문맥, 또는 맥락입니다. 이것에 비추어 프로그래밍에서의 컨텍스트 또한 프로그램 흐름상에 있는 문맥이라는 의미로 받아들이시면 이해하기가 편하실 겁니다. C# 넷 소켓에서 말하는 컨텍스트는 정보의 요청과 응답에 관한 흐름, 환경설정정보 등으로 생각할 수 있습니다. 그리하여 다음과 같은 문제로 해당 오류는 발생합니다.
- 최초 설계 시 내외부 주소 혼동으로 인한 예외
- 연결 끊김으로 인한 소켓 센드 오류(연결 재설정 필요)
- 아이피 변경 처리로 인해 통신 불가
해당과 같은 예외가 발생할 때 점검해볼 수 있습니다.
************** 예외 텍스트 **************
System.Net.Sockets.SocketException: 요청한 주소는 해당 컨텍스트에서 유효하지 않습니다
위치: System.Net.Sockets.Socket.SendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP)
위치: System.Net.Sockets.UdpClient.Send(Byte[] dgram, Int32 bytes, IPEndPoint endPoint)
위치: (Object sender, FormClosingEventArgs e) 파일 .cs:줄
위치: System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e)
위치: System.Windows.Forms.Form.WmClose(Message& m)
위치: System.Windows.Forms.Form.WndProc(Message& m)
위치: System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
위치: System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
위치: System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)