JAVA

Socket, ServerSocket 기본실습 : 데이터 주고 받기 (서버쪽 계속 열어놓기)

zammanza 2013. 2. 28. 16:16

Client

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.Socket;

import java.net.UnknownHostException;

 

 

//Socket(Client) : 데이터 받기2

public class TcpClientEx03 {

        public static void main(String[] args) {    

               Socket socket = null;

               BufferedReader br = null;             //서버에서 보낸 메세지 읽기

              

               if(args.length != 1){

                       System.out.println("서버의 IP 입력해주세요");

                       System.exit(0);

               }

              

               try {

                      

                       System.out.println("서버에 연결 중입니다.");

                      

                       socket = new Socket(args[0], 7777); //서버쪽에서 args 보낸것을 받음

                      

                       System.out.println("서버에 연결되었습니다.");

                      

                       br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

                       System.out.println("서버에서 보낸 메세지 : " + br.readLine());

                      

               } catch (UnknownHostException e) {

                      

               } catch (IOException e) {

                      

               } finally{

                       if(socket != null) try{socket.close();} catch(IOException e){}

               }

              

        }

}

 

 

 

 

 

 

Server

import java.io.BufferedOutputStream;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.net.ServerSocket;

import java.net.Socket;

 

 

//ServerSocket (Server) : 데이터 전달 (계속 대기)

public class TcpServerEx03 {

 

 

        public static void main(String[] args) {

               ServerSocket serverSocket = null;

               Socket socket = null;

               BufferedWriter bw = null;     //데이터 쓰기

              

               //소켓 준비

               try {

                       serverSocket = new ServerSocket(7777);       //7777 포트로 대기중

                       System.out.println("서버가 준비되었습니다.");

               } catch (IOException e) {

                       e.printStackTrace();

               }

              

               while(true){    //무한루프로 열어놓음

               try {

                       socket = serverSocket.accept();

                       System.out.println("클라이언트가 연결되었습니다 - " + socket.getInetAddress());

                      

                       bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

                       bw.write("Hello World");

                      

                       bw.flush();    //출력 버퍼를 비우는 메서드! (반드시 써줄것!)

                      

               } catch (IOException e) {

                       e.printStackTrace();

               } finally {

                       if ( bw != null) try{bw.close();} catch(IOException e){}

                       if ( socket != null) try{socket.close();} catch(IOException e){}

               }

              

               }

              

        }

}