본문 바로가기

보물창고/Programming

vmware ubuntu linux python server 외부에서 java로 접근 -[우분투 리눅스, 파이썬 서버, 다른 컴퓨터에서 접근, 아이피 설정, ip setting]

반응형

윈도우7운영체제에 VMware 7.0.1 버전에 우분투 10.10 이 설치되어 있는 환경 입니다

VMware에 설치되어 있는 우분투 리눅스 운영 체제에서 숫자만 받는 파이썬 서버가 돌고 이 서버 아이피 주소를 외부에서 접근하는 방법 입니다





일단 VMware설정 입니다
VMware에 기본값으로 리눅스를 설치하면 네트워크가 NAT로 설정되어 설치가 됩니다 
저는 외부에서 접근하기 위해 브릿지 설정으로 네트워크를 하나더 만들었습니다
원래 있던 NAT네트웍 설정을 지우지 않고
Add...를 클릭해서 네트워크를 bridged로 하나더 추가합니다
위 스샷은 Network Adapter 2로 네트워크가 추가 완료된 모습입니다

 


 


 
VMware 설정에서 네트워크가 추가되면 리눅스가 바로 알아챕니다
오른쪽 위에 위아래 화살표 아이콘을 클릭하면 새로 추가된 Auto eth1이 보이고 이걸 선택해서 리눅스의 네트웍을 변경합니다


 

 
이제 리눅스에서 ifconfig 명령어로 eth1에 할당된 아이피 주소를 확인합니다
(저는 공유기를 사용중이여서 외부에서 이 아이피를 접근하는데는 문제가 조금 될수 있습니다 고려해 주세요) 



 

 

from socket import *

def getNumber():

    HOST = '192.168.0.11'

    PORT = 30000

    sock = socket(AF_INET, SOCK_STREAM)

    sock.bind((HOST,PORT))

    sock.listen(1)

    conn, addr = sock.accept()

    sock.close()

    return conn.recv(32)

 
 
파이썬 서버 코딩 부분 입니다
위에서 확인된 아이피 주소를 여기에 적어서 서버를 돌립니다


 


윈도우 설정이 있어야 합니다
제어판\네트워크 및 인터넷\네트워크 연결 에서
VMnet8 의 속성을 확인합니다
여기서 VMware Bridge Protocol의 체크박스를 체크한후 확인을 누릅니다
(참고한 블로그 http://clansim.tistory.com/117



 
 

import java.io.*;

import java.net.*;

public class client {

        public static void main(String[] args) throws IOException

        {

               try {

                       // 실행시에 호스트 이름과 해당 포트를 명시해야 .     

                       // 인자로부터 호스트 이름과 포트번호를 얻어냄

                       //String host = "1.1.1.3";

                       String host = "192.168.0.11";

                       int port = Integer.parseInt("30000");

                       System.out.println(host + " : " + port);

 

                       while(true){

                              // 소켓 클래스 객체를 생성, 생성시 해당 서버와 접속을 시도함.

                              Socket s = new Socket(host, port);

 

                              // OutputStreamReader 클래스를 이용하여, Writer 얻어냄.

                              PrintWriter toServer =

                                      new PrintWriter(new OutputStreamWriter(s.getOutputStream()));

                              // 키보드에서 데이터를 읽어내기 위한 Reader 생성     

                              BufferedReader fromUser =

                                      new BufferedReader(new InputStreamReader(System.in));

 

                              // 화면으로 데이터를 출력하기 위한 Writer 생성

                              final PrintWriter toUser =

                                      new PrintWriter(new OutputStreamWriter(System.out));

 

                              // 현재, 연결된 정보를 화면에 표시

                              toUser.println("Connected to " + s.getInetAddress() + ":"+ s.getPort());

                              toUser.flush();

 

                              // 사용자로부터 데이터의 입력을 받고, 이를 서버로 보낸다.

                              String line;

                              line = fromUser.readLine();

                              toServer.println(line);

                              toServer.flush();

                              // 소켓 접속을 끊는다.

                              s.close();

                              toUser.println("Connection closed by client.");

                              toUser.flush();

                       }

               } catch (Exception e) {

                       System.err.println(e);

               }

        }

}



윈도우에서 접속한 자바 클라이언트 소스 입니다
원본은 네이버 지식인인지 블로그인지에서 따왔습니다;





 이렇게 설정하면 이제 윈도우에서 VMware 리눅스에 아이피 주소로 접근 가능합니다

 


반응형