System.Net.Sockets.SocketException (0x80004005): 원격 호스트가 기존 연결을 강제로 종료했습니다. System.Net.Sockets.Socket.ReceiveFrom(Byte[] b
UDP 통신 중, try... catch 문은 데이터를 받을 때마다 항상 오류가 발생합니다: System.Net.Sockets.SocketException (0x80004005): 원격 호스트가 기존 연결을 강제로 종료했습니다. 처음부터 가장 어리석은 해결책은 catch 문에서 아무것도 하지 않고 리스닝 포트 함수를 계속 실행하는 것이었습니다. 하지만 이것은 장기적인 해결책이 아니며, 저는 오랫동안 온라인에서 찾아보니 마이크로소프트의 설명을 찾았습니다.
마이크로소프트의 설명: http://support.microsoft.com/kb/263823
객체를 초기화한 후, 속성을 다음과 같이 설정하세요: IOC_IN = 0x80000000; uint IOC_VENDOR = 0x18000000; Uint SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12;
//uc为接收数据所使用的UdpClient,不同程序自己手改 UC. Client.IOControl((int)SIO_UDP_CONNRESET, new byte[] {Convert.ToByte(false)}, null);
Socket.IOControl 메서드 (IOControlCode, byte[], byte[]) IOControlCode를 사용하여 소켓의 저수준 동작 모드를 설정하는 제어 코드를 지정하세요. 매개 변수 ioControlCode 동작을 수행할 제어 코드를 지정하는 IOControlCode 값입니다. optionInValue 연산에 필요한 입력 데이터를 포함하는 바이트 타입의 배열입니다. optionOutValue 연산에서 반환되는 출력 데이터를 포함하는 바이트 타입의 배열입니다.
면책 조항: Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.
Mail To:help@itsvse.com