본문 바로가기

JAVA

Socket, ServerSocket 기본실습 : 데이터 주고 받기

Client

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.Socket;

import java.net.UnknownHostException;

 

 

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

public class TcpClientEx02 {

        public static void main(String[] args) {    

               Socket socket = null;

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

              

              

               try {

                      

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

                      

                       socket = new Socket("192.168.1.145", 7777);  //서버에서 열어놓은 port 접속

                      

                       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 TcpServerEx02 {

 

 

        public static void main(String[] args) {

               ServerSocket serverSocket = null;

               Socket socket = null;

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

              

               try {

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

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

                      

                       socket = serverSocket.accept();

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

                      

                       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){}

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

               }

              

        }

}