2014-12-07 2 views
1

나는 기본적으로 내가 그래서 다른 스레드에서이 작업을 실행하고하는 TCPListener 내에서 연결을 수신하는 데 문제가 발생합니다 이 "Stackoverflow"예외를 해결, 내가 그것을 코딩 한 방식으로 다른 스레드에서 연결을 수신 대기해야합니다, 어떤 제안을 해결하기 위해?스레드가있는 StackOverflowException

답변

4

Listen()은 결국 스택 오버플로를 초래할 자체를 호출합니다.

while 루프가 끝나면 Listen()에 대한 호출을 제거하기 만하면됩니다.

+0

내 스레드가 다른 들어오는 연결을 계속 수신하지 못하게합니다. –

+2

그런 다음 디자인 결함이있을 수 있습니다! –

+2

@ RaúlSanpedro : 예, 물론 가능합니다. 당신의 메소드는 반복적으로'Accept()'를 반복해서 호출한다. 이건 괜찮아. 물론, 여러분은 데이터를 받기 위해'Receive()'를 부를 필요가 있습니다. 인바운드 연결 요청을 수락하는 것보다 네트워크 지원 프로그램에 더 많은 것들이 있습니다. 그러나 최소한 Listen() 메서드에서 무한 반복 호출을 피할 수 있습니다. :) –