2013-10-10 2 views
0

나는 서버와 클라이언트 클래스를 가진 일반 채팅 프로그램을 만들었다. 나는 나의 끝에서 서버를 운영한다. 채팅 클라이언트는 다른 컴퓨터에서 실행됩니다. 내 프로그램에서 모든 클라이언트가 내 컴퓨터에서 실행되는 서버에 연결하기 위해 소켓 연결을 사용하는 임의의 포트 번호를 지정했습니다. 첫 번째 문제는이 기능을 사용하기 위해 방화벽을 비활성화해야한다는 것입니다 (아마 방화벽이 제공하는 포트를 차단할 것입니다). 방화벽이 수용 할 수있는 포트 번호를 지정하는 방법은 무엇입니까? 나 스스로 항구를 개설해야합니까?채팅 서버가 작동을 멈춘다.

둘째, 방화벽을 사용하지 않도록 설정하면 모든 것이 작동하지만 갑자기 연결이 끊어집니다. 어떤 클라이언트도 메시지를 보낼 수 없습니다. 가능한 원인은 무엇일까요? 내가 선택한 포트로 인해 발생했는지 확실하지 않습니다.

답변

1

연결 손실의 원인이되어야하는 시간 초과를 방지하려면 this.socket.setSoTimeout(timeOut); 을 사용하여 소켓 연결 시간 초과를 올바르게 설정해야합니다. 방화벽을 통해 소켓 COMUNICATION이 문서를 통해 갈 수 있도록하기 위해

는 : http://windows.microsoft.com/en-US/windows7/Allow-a-program-to-communicate-through-Windows-Firewall

+0

방화벽 하나했다! 감사! 방금 그 프로그램을 별도로 추가해야했습니다. 타임 아웃에 대해서는, 스윙 프레임 워크를 사용하고 있기 때문에 프레임 창이 닫힐 때까지 소켓 연결을 유지하는 방법을 제안 할 수 있습니까? – Mercenary

관련 문제