저는 약간의 서버/클라이언트 프로젝트에서 작업 중이며 약간의 문제로 인해 진행이 방해 받고 있습니다.외부 IP로 연결을 시도 할 때 연결이 거부되었습니다.
나는 핵심 프로그램 (클라이언트와 서버) 못을 박았다 생각하고 나는 localhost
를 사용하여이 둘을 연결하는 관리하지만 난 내 외부 IP를 통해 연결하려고 할 때 예외가 얻을 : 처음
java.net.ConnectException: Connection refused
java.net.PlainSocketImpl.socketConnect(Native Method)
java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
java.net.Socket.connect(Socket.java:529)
java.net.Socket.connect(Socket.java:478)
java.net.Socket.<init>(Socket.java:375)
java.net.Socket.<init>(Socket.java:218)
networking.Client.run(Client.java:183)
java.lang.Thread.run(Thread.java:680)
을 나는 포트 10을 사용하여 시도했지만 0에서 1023 사이의 포트가 어떤 이유로 Mac에서 작동하지 않는다는 것을 알았으므로 그 범위를 벗어난 포트를 선택했습니다. localhost
으로 연결했지만 외부 IP로 연결을 시도했을 때 (일반 사용자처럼) 예외가 발생했습니다. 내 포트가 올바르게 전달되고 sudo lsof -i tcp -nP
(Mac의 경우 netstat
)을 실행하면 실제로 내 서버가 실제로 올바른 포트에서 수신 대기중인 것으로 표시됩니다. 이것은 제가 고객에게 문제가 될지도 모른다고 생각하게합니다. 그러나 저는 정말로 모릅니다.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 35423 MeshulamSilk 41u IPv6 0xc949f3cdb29dfdcd 0t0 TCP *:63370 (LISTEN)
java 35423 MeshulamSilk 42u IPv6 0xc949f3cdbbf1b96d 0t0 TCP [::1]:63992->[::1]:63991 (TIME_WAIT)
나는이 게시물 그래서 요점에 코드를 업로드 좀 혼란스러워 알고 여기
은 Terminal.app에서sudo lsof -i tcp -nP
출력됩니다. 누구든지 나를 여기에 추가하고 싶다면 알려주십시오.
The code for both the server and client can be found here.
몇 가지 참고 사항 :
- MooConsole 내 보낸 프로그램의 콘솔을 제공 내가 쓴 라이브러리입니다. 내 클라이언트와 서버 모두에서 텍스트를 표시하는 데 사용합니다.
- MooCommands는 콘솔에서 실행할 수있는 명령을 나타내는 내 라이브러리 중 하나입니다.
- SocketThread는 새로운 연결을 처리하는 클래스입니다. 이렇게하면 서버가 여러 클라이언트를 동시에 연결할 수 있습니다. 그것은
java.lang.Thread
을 확장합니다. 나는 그것이 문제를 일으키고 있다고 생각하지 않아서 나는 그것을 포함하지 않고 있지만 필요한 경우 할 수있다. Operations.DISCONNECT
은 연결 끊김을 나타내는 열거 형 상수입니다.
누구든지 내가 뭘 잘못하고 있는지, 아니면 내가 무엇을하고 있는지 간단하게 알지 못한다면 알려주세요. 감사하게 생각합니다.
방화벽? 권한? Mac OS가 제공된 포트 – MadProgrammer
에서 연결을 적극적으로 거부 할 수 있습니다. Windows에서이 포트를 사용해도 동일한 문제가 발생했습니다. 나는 이것이 OS 문제라고 생각하지 않는다. –
여전히 방화벽 문제 일 수 있습니다. 로컬 네트워크 내에서 또는 외부에서 (웹/VPN에서) 연결하려고합니까 – MadProgrammer