C#

port 접속 비정상오류에 대한 질문입니다.

0
채팅서버프로그램을 작성하고 있는데 서버가 갑자기 중지된 상태에서 클라이언트가 살아있다면 다시 서버를 동작시킬떄 먼저번에 열었던 port로 열지 못하는 현상이 있습니다. 원인이 무엇인지 알려주면 감사하겠습니다.

채팅서버프로그램을 작성하고 있는데 서버가 갑자기 중지된 상태에서 클라이언트가 살아있다면 다시 서버를 동작시킬떄 먼저번에 열었던 port로 열지 못하는 현상이 있습니다. 원인이 무엇인지 알려주면 감사하겠습니다.

bj 2019-04-20
+
bj 님께서 2019-04-20에 C#에 올린 질문

댓글

1개의 답변

0
Port로 접속하지 못한다면 해당 프로그램이 정상적으로 종료되지 않은 상황일 수 있습니다. 윈도우 환경이시라면 터미널에서 다음 명령을 실행해서 해당 포트를 사용 중인 프로세스 아이디를 찾습니다. netstat -ano | findstr : 이 ..

Port로 접속하지 못한다면 해당 프로그램이 정상적으로 종료되지 않은 상황일 수 있습니다.

윈도우 환경이시라면 터미널에서 다음 명령을 실행해서 해당 포트를 사용 중인 프로세스 아이디를 찾습니다.

netstat -ano | findstr :<포트번호>

이 때 해당 프로세스가 ESTABLISHED 상태이거나 TIME_WAIT 상태이면 아직 프로세스가 살아있는 상태입니다.

만약 TIME_WAIT 상태라면 해당 환경의 TIME_WAIT 설정이 길게 설정되어있지는 않은 지 확인이 필요할 것 같습니다.

 

해당 프로세스를 죽이려면 아래와 같이 명령을 실행합니다.

taskkill /PID <찾은 프로세스 아이디> /F

 

사용 예는 아래와 같습니다.

 

만약 리눅스 환경이라면 아래와 같은 명령으로 해당 포트로 사용 중인 프로세스를 찾을 수 있습니다.

netstat -ltnp | grep -w ':<포트번호>' 

그런 다음 아래와 같이 죽입니다.

kill -9 <프로세스 아이디>

 

혹시 그래도 안되시면 다시 질문이나 댓글 주시기 바랍니다.

kimho 2019-04-21
+
사탕 주기
kimho 님께서 2019-04-21에 C#에 올린 글
보관하기

댓글

조회수 1,417
답글 1
URL