Haxe : 원격 호스트에 연결

베이스

여기에 제공된 클라이언트 / 서버 자습서를 만들었습니다.

http://old.haxe.org/doc/neko/client_server ,

그러나이 예제는 유틸리티가 매우 제한된 로컬 호스트의 경우에만 실제로 적용됩니다. 나는 누군가가 이것을 원격 호스트에 연결하는 경우로 확장하는 방법을 설명 할 수 있기를 바랐습니다. 특히, 누군가가이 예제를 수정하여 집에있는 랩톱에서 서버 코드를 실행하고 친구 (내 집 IP를 알고있는)가 클라이언트를 실행하도록 할 수있는 방법을 알고 있다면.

고객 코드:

// file Client.hx
class Client {
    static function main() {
        var s = new sys.net.Socket();
        s.connect(new sys.net.Host("localhost"),5000);
        while( true ) {
            var l = s.input.readLine();
            trace(l);
            if( l == "exit" ) {
                s.close();
                break;
            }
        }
    }
}

서버 코드 :

// file Server.hx
class Server {
    static function main() {
        var s = new sys.net.Socket();
        s.bind(new sys.net.Host("localhost"),5000);
        s.listen(1);
        trace("Starting server...");
        while( true ) {
            var c : sys.net.Socket = s.accept();
            trace("Client connected...");
            c.write("hello\n");
            c.write("your IP is "+c.peer().host.toString()+"\n");
            c.write("exit");
            c.close();
        }
    }
}

면책 조항으로서 저는 통신 프로토콜에 대해 거의 알지 못하므로 질문이 어리석은 경우 사과드립니다.

편집하다:

"로컬 호스트"를 로컬 IP 주소 "192.168.1.254"로 바꾸면 여전히 작동하지만 "localhost"를 공용 IP 주소 "206.XXX.XXX.XXX"로 바꾸면 클라이언트가 연결되지 않습니다 (이 내가 시도한 첫 번째 것).

해당 포트에서 들어오는 트래픽과 나가는 트래픽 모두에 대해 방화벽을 비활성화했지만 차이가없는 것 같습니다. 내 클라이언트 인스턴스가 로컬로만 서버 인스턴스에 연결할 수있는 이유는 무엇입니까? 컴퓨터의 공용 IP 주소를 사용하도록 클라이언트 코드를 변경하면 라우터를 통해 요청이 라우팅됩니다.

편집하다:

실제로 공개 IP 주소와 함께 모두 작동했지만 어떤 이유로 든 내 로컬 네트워크 내에서 라우터의 공개 IP에 연결할 수 없었습니다 (나는 이것이 왜 문제인지 이해하지 못합니다-어쩌면 이상한 라우터 일 수도 있습니다 특정 NAT 문제). 이 유틸리티 사용 :

http://www.yougetsignal.com/tools/open-ports/

관련 포트가 열려 있는지 확인하고 서버 프로그램에 연결할 수있었습니다.

앤드류

아래 문자열의 클라이언트 코드에서 "localhost"를 IP 주소로 바꿉니다.

s.connect(new sys.net.Host("localhost"),5000);

http://api.haxe.org/sys/net/Host.html

새 호스트 생성 : 이름은 '127.0.0.1'형식의 IP이거나 'google.com'과 같은 호스트 이름 일 수 있습니다.이 경우 해당 IP 주소는 DNS를 사용하여 확인됩니다. 호스트 이름을 찾을 수없는 경우 예외가 발생합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

MySQL Linux에 원격 연결

분류에서Dev

원격 JMX 호스트에 연결할 수 없습니다.

분류에서Dev

SSH : 원격 호스트에 의해 연결이 닫힘

분류에서Dev

원격 호스트에 연결할 jquery 터미널

분류에서Dev

원격 호스트의 도커 데몬에 연결

분류에서Dev

원격 데스크톱 연결 암호

분류에서Dev

원격 호스트에서 MongoDB에 연결하는 동안 인증 오류

분류에서Dev

C에서 원격 호스트에 연결 (소켓 프로그래밍)

분류에서Dev

JSch로 jumphost를 통해 원격 호스트에 연결할 때 "HostKey 거부"

분류에서Dev

ssh_exchange_identification : 원격 호스트 + HP Procurve에 의해 연결이 닫힘

분류에서Dev

ssh_exchange_identification : 원격 호스트에 의해 연결이 닫힘

분류에서Dev

원격 호스트 Centos 7에서 SSH 연결을 닫았습니다.

분류에서Dev

원격 연결을 허용하지 않는 호스트의 mysql 데이터베이스에 연결

분류에서Dev

원격 액세스 MySQL 연결 오류

분류에서Dev

원격 데스크톱 연결

분류에서Dev

Jmeter 원격 연결에서 "호스트에 대한 연결이 거부되었습니다."

분류에서Dev

MS SQL 원격 연결 설정 및 PHP로 Linux 호스팅에서 연결

분류에서Dev

원격 서버에 TCP 연결

분류에서Dev

C # .Net Core로 원격 Jaegertracing에 연결

분류에서Dev

원격 연결에 프록시 사용

분류에서Dev

Amazon AWS Mysql에 원격으로 연결

분류에서Dev

Postgres에 원격으로 jhipster 연결

분류에서Dev

원격 mysql db 서버에 연결

분류에서Dev

원격 JMS 공급자에 연결

분류에서Dev

원격 CentOS 머신에 연결

분류에서Dev

원격 mysql 서버에 연결

분류에서Dev

원격으로 JBoss 7.1.1 MBean에 연결

분류에서Dev

공용 IP로 원격 mssql에 연결

분류에서Dev

PgAdmin은 원격 서버에 연결

Related 관련 기사

뜨겁다태그

보관