1. 서버를 실행

2. 클라이언트1를 실행 : 대화명 입력. 입력

3. 클라이언트2를 실행 : 대화명 입력. 입력

4. 클라이언트3를 실행

..



1. server 



package test01.net;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.InetAddress;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.ArrayList;


//클라이언트가 보내온 메시지를 수신하고 다른 클라이언트들에게 수신된 메시지를 다시 보내는 스레드 

class EchoThread extends Thread{


    //모든 클라이언트와 연결된 Socket객체를 담은 객체 배열

    private ArrayList<Socket> list;


    //클라이언트와 연결된 Socket객체

    private Socket sock;

    private String name;//대화명


    public EchoThread(ArrayList<Socket> list,Socket sock){

        this.list=list;

        this.sock=sock;

    }

    public void run(){

        try{

            //소켓을 통해 데이터를 읽기위한 스트림 얻어오기

            InputStream is=sock.getInputStream();


            //1바이트처리스트림을 2바이트처리스트림으로 변환하기

            BufferedReader br=new BufferedReader(new InputStreamReader(is));


            //맨처음에 전송된 문자열은 무조건 대화명이 됨

            name=br.readLine();


            //다른 클라이언트들에게 입장 알리기

            sendMsg("["+ name+"]님이 입장하셨습니다.");


            while(true){

                //클라이언트가 보낸 메시지 읽어오기

                String msg=br.readLine();


                if(msg==null){//상대방이 종료한 경우

                    sendMsg("["+name+"]님이 퇴장하셨습니다.");

                    //ArrayList에서 클라이언트와 연결된 Socket제거하기

                    list.remove(sock);

                    //스트림닫기

                    br.close();

                    //소켓닫기

                    sock.close();

                    break;

                }

                //전달받은 메시지를 다른 클라이언트에 보냄

                sendMsg("["+name+"]"+msg);

            }

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

    public void sendMsg(String msg){

        for(int i=0;i<list.size();i++){

            //ArrayList에 담긴 Socket객체 꺼내오기

             Socket soc=list.get(i);


             //데이터를 수신받은 Socket객체가 아닌경우

             if(soc!=sock){

                 try{

                    //클라이언트에 데이터를 보내기 위한 출력스트림 얻어오기

                     PrintWriter pw=new PrintWriter(soc.getOutputStream());

 

                    //연결된 클라이언트에 데이터 보내기

                     pw.println(msg);

                     pw.flush();

                 }catch(IOException ie){

                     System.out.println(ie.getMessage());

                 }

             }

        }

    }

}

public class MultiChatServer{

    public static void main(String[] args) {

        ServerSocket server=null;


        //클라이언트와 연결된 Socket객체를 배열처럼 담기 위한 객체 생성

        ArrayList<Socket> list=new ArrayList<Socket>();


        try{

            server=new ServerSocket(3001);


            while(true){

                System.out.println("클라이언트 접속 대기중..");


                //클라인언트접속허용하기

                Socket sock=server.accept();


                //클라이언트의 아이피주소에 대한 정보를 갖는 객체 얻어오기

                InetAddress ia=sock.getInetAddress();


                //클라이언트의 아이피주소 출력하기

                System.out.println("ip주소["+ ia.getHostAddress() + "]가 접속함");


                //클라이언트와 연결된 Socket객체를 list에 담기

                list.add(sock);


                //데이터를 수신하는 스레드 실행하기

                new EchoThread(list, sock).start();

            }

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}

 





2. client   


package test01.net;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.net.UnknownHostException;


//서버가 보내온 데이터를 읽어와 화면에 출력하는 스레드

class ReceiveThread extends Thread{

    private Socket sock;

    public ReceiveThread(Socket sock){

        this.sock=sock;

    }

    public void run(){

        try{

            //서버가 보내온 데이터를 읽어오기위한 스트림객체

            BufferedReader br=

              new BufferedReader(new InputStreamReader(sock.getInputStream()));


            while(true){

                //서버가 보내온 문자열 읽어오기

                String msg=br.readLine();

                if(msg==null){

                    System.out.println("접속이 종료되었어요..");

                    break;

                }

                System.out.println(msg);

            }

            br.close();

            sock.close();

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}

//서버에 문자열을 보내는 스레드

class SendThread extends Thread{

    private Socket sock;

    public SendThread(Socket sock){

        this.sock=sock;

    }

    public void run(){


        //키보드로부터 입력받기 위한 스트림객체 생성

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

        try{

            //서버에 데이터를 보내기위한 출력스트림객체 생성하기

            PrintWriter pw=new PrintWriter(sock.getOutputStream());    

            System.out.println("대화명입력");


            //제일먼저 키보드로 대화명입력받기

            String ss=br.readLine();


            //대화명 서버에 보내기

            pw.println(ss);

            pw.flush();


            while(true){

                //키보드로 문자열 입력받기

                String msg=br.readLine();

                if(msg.equals("exit")) break;


                //서버에 문자열 보내기

                pw.println(msg);

                pw.flush();

            }

            pw.close();

            sock.close();

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}

public class MultiChatClient{

    public static void main(String[] args) {

        try{

            Socket sock=new Socket("192.168.0.2",3001);

            System.out.println("서버접속성공!");


            //서버에서 보내온 데이터를 수신하는 스레드 실행

            new ReceiveThread(sock).start();


            //서버에 데이터를 보내는 스레드 실행

            new SendThread(sock).start();

        }catch(UnknownHostException ue){

            System.out.println(ue.getMessage());

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}




 

 

 

 

1. Frame



package test01.awt;

import java.awt.Frame;

import java.awt.Button;


public class Test01_Frame{

    public static void main(String[] args) {


        Frame frm=new Frame("나의첫번째프레임");

        

        //가로세로길이 설정

        frm.setSize(400,400);


        //화면에 보이기

        frm.setVisible(true);


        frm.add(new Button("버튼1"));

        frm.add(new Button("버튼2"));

    }

}


 


 




2. Button



package test01.awt;

import java.awt.Button;

import java.awt.FlowLayout;

import java.awt.Frame;


class MyFrame01 extends Frame{


    private Button btn1=new Button("버튼1");

    private Button btn2=new Button("버튼2");

    private Button btn3=new Button("버튼3");

    private Button btn4=new Button("버튼4");


    //레이아웃매니져 생성

    private FlowLayout layout=new FlowLayout();


    public MyFrame01(String title){

        super(title);

        

        setLayout(layout);

        

        add(btn1);

        add(btn2);

        add(btn3);

        add(btn4);

        

        //가로세로길이 설정

        setSize(400,400);


        //화면에 보이기

        setVisible(true);

    }

}

public class Test02_Frame{

    public static void main(String[] args) {

        new MyFrame01("나의 두번째 프레임");

    }

}


 


 




3.  layout 



package test01.awt;

import java.awt.BorderLayout;

import javax.swing.JButton;

import javax.swing.JFrame;


class MyFrame03 extends JFrame{


    JButton btn1=new JButton("버튼1");

    JButton btn2=new JButton("버튼2");

    JButton btn3=new JButton("버튼3");

    JButton btn4=new JButton("버튼4");

    JButton btn5=new JButton("버튼5");


    //레이아웃매니져 생성

    BorderLayout layout=new BorderLayout();


    public MyFrame03(){

        super("세번째 프레임");


        //프레임에 레이아웃매니져 설정하기

        setLayout(layout);


        //버튼을 5개 영역(동,서,남,북,가운데)에 배치하기

        add(btn1,BorderLayout.NORTH);

    //    add(btn2,BorderLayout.WEST);

        add(btn3,BorderLayout.EAST);

    //    add(btn4,BorderLayout.SOUTH);

        add(btn5,BorderLayout.CENTER);

        

        setSize(400,400);

        setVisible(true);

    }

}

public class Test03_BorderLayout{

    public static void main(String[] args) {

        new MyFrame03();

    }

}


 


 




4.  JPanel



package test01.awt;

import java.awt.BorderLayout;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextArea;


class MyFrame04 extends JFrame{


    JButton btn1=new JButton("버튼1");

    JButton btn2=new JButton("버튼2");

    JPanel pan=new JPanel();

    JTextArea ta=new JTextArea();


    public MyFrame04(){

        //패널에 버튼 붙이기

        pan.add(btn1);

        pan.add(btn2);

        

        //레이아웃 매니져 설정하기

        setLayout(new BorderLayout());


        //패널을 North영역에 붙이기

        add(pan,BorderLayout.NORTH);

        add(ta,BorderLayout.CENTER);

        

        setSize(400,400);

        setVisible(true);

    }

}

public class Test04_JPannel{

    public static void main(String[] args) {

        new MyFrame04();

    }

}


 


 




 

 

- 서버를 실행하고 
- 클라이언트에서 파일이름을 입력하면 해당 폴더로 파일이 전송

1. server

MyServer01.java
package test03.file;
import java.io.DataInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer01{
    public static void main(String[] args) {
        ServerSocket server=null;
        try{
            server=new ServerSocket(3000);
            System.out.println("클라이언트 접속대기중...");
            Socket sock=server.accept();
            System.out.println("클라이언트가 접속 했습니다.");
            //클라이언트가 보내온 데이터를 읽어오기위한 스트림객체 생성
            DataInputStream dis=new DataInputStream(sock.getInputStream());
            //제일먼저 보내온 파일명 읽어오기
            String fileName=dis.readUTF();
            //전송된 파일명으로 파일생성하기
            FileOutputStream fos=new FileOutputStream("c:\\down\\" + fileName);
            byte[] b=new byte[1024];
            int n=0;
            long fileSize=0;
            while((n=dis.read(b))!=-1){//전송된 데이터 읽어와 b배열에 저장
                //b배열의 데이터를 파일로 저장
                fos.write(b,0,n);
                fileSize+=n;//전송된 파일크기 구하기
            }
            //스트림닫기
            fos.close();
            dis.close();
            //소켓닫기
            sock.close();
            server.close();
            System.out.println("c:\\down폴더에" + fileSize +
                    "bytes크기의 파일수신 완료!");
        }catch(IOException ie){
            System.out.println(ie.getMessage());
        }
    }
}
 



2. client
MyClient01.java

192.168.0.2 --> 해당 서버의 주소. 로컬 pc에서 테스트할 경우 pc ip넣기.
package test03.file;

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class MyClient01{
    public static void main(String[] args){
        try{
            Socket sock=new Socket("192.168.0.2",3000);
            System.out.println("서버접속성공!");

            Scanner scan=new Scanner(System.in);
            System.out.println("전송할 파일명 입력");

            String fileName=scan.next();
            File f=new File(fileName);

            //데이터를 전송하기 위한 스트림객체 생성하기
            DataOutputStream dos=new DataOutputStream(sock.getOutputStream());

            //제일먼저 파일명 보내기
            dos.writeUTF(f.getName());
            dos.flush();
            byte b[]=new byte[1024];
            int n=0;

            //파일에서 읽어오기 위한 스트림객체 생성
            FileInputStream fis=new FileInputStream(fileName);
            long fileSize=0;

            while((n=fis.read(b))!=-1){//파일에서 읽어와 b에 저장
                dos.write(b,0,n);//서버에 파일에서읽어온 데이터 보내기
                fileSize+=n;//파일크기 구하기
            }
            dos.close();//스트림닫기
            fis.close();//스트림닫기
            System.out.println(fileSize+"bytes 크기의 파일전송 완료!");
            sock.close();//소켓닫기
        }catch(UnknownHostException ue){
            System.out.println(ue.getMessage());
        }catch(IOException ie){
            System.out.println(ie.getMessage());
        }
    }
}
 


 

 

'JAVA' 카테고리의 다른 글

멀티 채팅 샘플  (0) 2014.09.13
AWT ( Frame / Button / Layout / JPanel ) - 간단한 예제  (0) 2014.09.13
Network - 채팅 샘플 ( Ⅲ )  (0) 2014.09.12
Network ( Ⅱ )  (0) 2014.09.12
Network ( Ⅰ )  (0) 2014.09.12

 

ex> 서버와 클라이언트 구성 (채팅 참고)

1) 서버를 먼저 실행하고 

2) 클라이언트를 실행한다. 클라이언트에서 입력하면 서버에서 받아 화면에 뿌려준다. 


1. server

MyServer01.java

package test02.net;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

class ReceiveServer extends Thread{  //데이터를 수신하는 스레드

    private Socket sock;

    public ReceiveServer(Socket sock){

        this.sock=sock;

    }

    public void run(){

        try{

            //상대방(클라이언트)가 보내온 문자열을 읽어오기위한 스트림생성

            BufferedReader br=

                new BufferedReader(new InputStreamReader(sock.getInputStream()));

            while(true){        

                //상대방(클라이언트)가 보내온 문자열 읽어오기

                String msg=br.readLine();

                if(msg==null){

                    System.out.println("상대방이 접속을 해제했어요!");

                    break;

                }

                System.out.println("상대방>>" + msg);

            }

            br.close();

            sock.close();

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}

class SendServer extends Thread{//데이터를 보내는 스레드

    private Socket sock;

    public SendServer(Socket sock){

        this.sock=sock;

    }

    public void run(){

        //키보드로 문자열 입력받기위한 스트림객체 생성

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

        try{

            //문자열을 상대방에 보내기위한 스트림객체 생성

            PrintWriter pw=new PrintWriter(sock.getOutputStream());

            while(true){

                //키보드로 문자열 입력받기

                String msg=br.readLine();

                if(msg.equals("exit")) break;

                //문자열을 클라이언트에 보내기

                pw.println(msg);

                pw.flush();

            }

            pw.close();

            sock.close();

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}

public class MyServer01 {

    public static void main(String[] args) {

        ServerSocket server=null;

        try{

            server=new ServerSocket(3000);

            System.out.println("클라이언트접속대기중..");

            Socket sock=server.accept();

            System.out.println("클라이언트가 접속했습니다.");

            //데이터(문자열)를 전송받는 스레드 실행

            new ReceiveServer(sock).start();

            //데이터(문자열)를 보내는 스레드 실행

            new SendServer(sock).start();

            server.close();

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}


 

 





2. client

MyClient01.java

package test02.net;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.net.UnknownHostException;

class ReceiveClient extends Thread{//서버에서 보내온 데이터를 수신하는 스레드

    private Socket sock;

    public ReceiveClient(Socket sock){

        this.sock=sock;

    }

    public void run(){

        try{

            //서버가 보내온 데이터를 읽어오기 위한 스트림객체 생성

            BufferedReader br=

             new BufferedReader(new InputStreamReader(sock.getInputStream()));

            while(true){

                //서버가 보낸 문자열 읽어오기

                String msg=br.readLine();

                if(msg==null) {

                    System.out.println("상대방이 접속을 해제했어요!");

                    break;

                }

                System.out.println("상대방>>" + msg);//받은문자열화면에출력

            }

            br.close();

            sock.close();

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}

class SendClient extends Thread{

    private Socket sock;

    public SendClient(Socket sock){

        this.sock=sock;

    }

    public void run(){

        //키보드로부터 입력받기 위한 스트림객체

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

        try{

            //상대방에 데이터를 보내기위한 스트림객체생성

            PrintWriter pw=new PrintWriter(sock.getOutputStream());

            while(true){

                String msg=br.readLine();//키보드로 문자열 입력받기

                if(msg.equals("exit")) break;//while끝내기

                pw.println(msg);//상대방에 문자열 보내기

                pw.flush();

            }

            pw.close();

            sock.close();

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}

public class MyClient01 {

    public static void main(String[] args) {

        Socket sock=null;

        try{

            sock=new Socket("127.0.0.1",3000);

            System.out.println("서버접속성공!");

            //데이터를 읽어오는 스레드 실행하기

            new ReceiveClient(sock).start();

            //데이터를 보내는 스레드 실행하기

            new SendClient(sock).start();

        }catch(UnknownHostException ue){

            System.out.println(ue.getMessage());

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}


클라이언트에서 입력 

 


서버쪽에 화면에 넘어온 값을 출력한다. 

 

'JAVA' 카테고리의 다른 글

AWT ( Frame / Button / Layout / JPanel ) - 간단한 예제  (0) 2014.09.13
Network - 파일전송 ( Ⅳ )  (0) 2014.09.12
Network ( Ⅱ )  (0) 2014.09.12
Network ( Ⅰ )  (0) 2014.09.12
스레드(Thread)  (0) 2014.09.12

 

1. server


ex> MyServer01.java

package test01.net;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.net.InetAddress;

import java.net.ServerSocket;

import java.net.Socket;

public class MyServer01 {

    public static void main(String[] args) {

        ServerSocket server=null;

        //키보드로부터 문자열을 입력받기 위한 스트림객체 얻어오기

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

        try{

            server=new ServerSocket(3000);

            System.out.println("서버가 실행됨");

            Socket sock=server.accept();

            System.out.println("클라이언트가 접속했습니다.");

            

            //접속한 클라이언트의 ip주소에 대한 정보를 갖는 객체 얻어오기

            InetAddress ia=sock.getInetAddress();

            //클라이언트의 아이피주소 출력하기

            System.out.println("접속자 ip:" + ia.getHostAddress());

            

            //상대방에 데이터를 보내기위한 스트림객체 얻어오기

            OutputStream os=sock.getOutputStream();

            //1바이트처리스트림객체를 2바이트 처리스트림으로 변환하기

            PrintWriter pw=new PrintWriter(os);

            

            //상대방(클라이언트)가 보낸 데이터를 읽어오기 위한 스트림 얻어오기

            InputStream in=sock.getInputStream();

            //1바이트처리스트림을 2바이트 처리스트림으로 변환하기

            BufferedReader br=new BufferedReader(new InputStreamReader(in));

            

            while(true){

                //상대방(클라이언트)가 보낸 문자열 읽어오기

                String msg=br.readLine();

                if(msg==null){

                    System.out.println("상대방이 접속을 해제했습니다.");

                    break;

                }

                System.out.println("상대방이보낸문자열>>" + msg);

                System.out.println("클라이언트에 보낼 메시지입력");

                String str=br1.readLine();//키보드로부터 문자열 입력받기

                if(str.equals("exit")){

                    System.out.println("접속을 종료합니다.");

                    break;

                }

                pw.println(str);//상대방(클라이언트)에 문자열 보내기

                pw.flush();//버퍼가 다 차지않아도 데이터 보내기

            }

            br.close();//스트림닫기

            pw.close();//스트림닫기

            sock.close();//소켓종료

            server.close();//서버소켓종료

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}

 


2. client


ex> MyClient01.java

package test01.net;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.net.UnknownHostException;

import java.io.OutputStream;

public class MyClient01 {

    public static void main(String[] args) {

        Socket sock=null;

        //키보드로 문자열을 입력받기 위한 스트림객체 생성

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

        try{

            sock=new Socket("192.168.0.2",3000);

            //상대방에 데이터를 보내기위한 출력스트림 얻어오기

            OutputStream out=sock.getOutputStream();

            //1바이트처리스트림을 2바이트처리스트림으로 포장하기

            PrintWriter pw=new PrintWriter(out);

            //상대방이 보낸 데이터를 읽어오기위한 스트림 얻어오기

            InputStream in=sock.getInputStream();

            //1바이트처리스트림을 2바이트 처리스트림으로 포장하기

            BufferedReader sbr=new BufferedReader(new InputStreamReader(in));

            

            System.out.println("서버에 접속 성공!");

            

            while(true){

                System.out.println("서버로 보낼문자열 입력");

                String msg=br.readLine();//키보드로 문자열 입력받기

                if(msg.equals("exit")){

                    System.out.println("서버와 접속을 종료합니다.");

                    break;

                }

                pw.println(msg);//상대방(서버)에 msg보내기

                pw.flush();//버퍼가 차지 않아도 데이터 내보내기

                String str=sbr.readLine();//상대방이 보낸 문자열 읽어오기

                if(str==null){//상대방이 접속을 종료한경우

                    System.out.println("상대방이 접속을 끊었습니다.");

                    break;

                }

                System.out.println("상대방이 보낸 문자열>>"+str);

            }

            sbr.close();//스트림닫기

            pw.close();//스트림닫기

            sock.close();//소켓닫기

        }catch(UnknownHostException ue){

            System.out.println(ue.getMessage());

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}





[ 서버프로그램 ]

 - 클라이언트가 접속해오면 클라이언트의 아이피주소를 출력하고 클라이언트의 아이피주소를 클라이언트에 보내기

[ 클라이언트프로그램 ]

 - 서버에 접속하고 서버가 보내온 아이피주소(클라이언트의 아이피주소)를 읽어와 화면에 출력하기


ex> Quiz01 

server >>

package test01.net;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.PrintWriter;

import java.net.InetAddress;

import java.net.ServerSocket;

import java.net.Socket;


public class Quiz01 {

    public static void main(String[] args) {

        ServerSocket server=null;

        try{

            server=new ServerSocket(3001);

            System.out.println("서버실행");

            Socket sock=server.accept();

            System.out.println("클라이언트가 접속함");

            InetAddress ia=sock.getInetAddress();

            //클라이언트의 아이피주소 얻어오기

            String ip=ia.getHostAddress();

            System.out.println("접속한 클라이언트 ip주소:" + ip);

            //상대방에 데이터를 보내기(출력)하기위한 스트림 생성하기

            PrintWriter pw=new PrintWriter(sock.getOutputStream());

            //상대방에 ip주소 보내기

            pw.println(ip);

            pw.flush();

            //스트림닫기

            pw.close();

            //소켓닫기

            sock.close();

            server.close();

            System.out.println("서버가 종료되었어요~~~");

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}

 

 

client>>

package test01.net;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.Socket;

import java.net.UnknownHostException;

public class Quiz01_client {

    public static void main(String[] args) {

        Socket sock=null;

        try{

            sock=new Socket("localhost",3001);

            System.out.println("서버와의 접속성공!");

            //서버가 보내온 데이터를 받기위한 스트림객체 생성

            BufferedReader br=

             new BufferedReader(new InputStreamReader(sock.getInputStream()));

            //서버가 보내온 문자열 읽어오기

            String ip=br.readLine();

            System.out.println("서버가 보내준 내 ip주소:" + ip);

            br.close();//스트림닫기

            sock.close();//소켓닫기

        }catch(UnknownHostException ue){

            System.out.println(ue.getMessage());

        }catch(IOException ie){

            System.out.println(ie.getMessage());

        }

    }

}

 

 

 

 

3. 아이피 주소 얻어오기


ex> Test01_InetAddress.java

package test01.net;

import java.net.InetAddress;

import java.net.UnknownHostException;

public class Test01_InetAddress {

    public static void main(String[] args) {

        //public static InetAddress getByName(String host)

        //throws UnknownHostException

        try{

            InetAddress ia=InetAddress.getByName("www.naver.com");

            //호스트명에 해당하는 아이피주소 얻어오기

            String ip=ia.getHostAddress();

            System.out.println("naver ip주소:" + ip);

            InetAddress local=InetAddress.getLocalHost();

            System.out.println("local ip주소:" +local.getHostAddress());

        }catch(UnknownHostException ue){

            System.out.println(ue.getMessage());

        }

    }

}

 




 

 

'JAVA' 카테고리의 다른 글

Network - 파일전송 ( Ⅳ )  (0) 2014.09.12
Network - 채팅 샘플 ( Ⅲ )  (0) 2014.09.12
Network ( Ⅰ )  (0) 2014.09.12
스레드(Thread)  (0) 2014.09.12
재귀 메소드  (0) 2014.09.12

+ Recent posts