'JAVA/JSP/Source'에 해당되는 글 36건

  1. 2008.07.14 Socket/ ServerSocket

Socket/ ServerSocket

|


----- Socket 프로그램 -----


- Server와 Client사이에 통신하려면 Socket을 통해 연결

- Server와 Client 접속시 사용할 port 번호가 약속되어 있어야 한다.


1. Server
   . ServerSocket을 갖는다.
   . ServerSocket ss = ..... (555);
   . Socket 객체 = ss.accept(); //자신의 Socket객체를 만든다.
   . accept()는 항상 Client의 접속을 기다린다.

2. Client
   . Socket을 갖는다.
   . Socket s = new Socket(String host, int port);
   . 자신의 Socket객체를 생성할때 Server도 자신의 accept()를 이용,

     Client와 통신가능한 Socket객체를 만든다.



----- Socket Server Class-----

import java.net.*;
import java.io.*;


class EchoServer
{

   public static void main(String[] args)
   {
      try{  
           ServerSocket ss = new ServerSocket(5555); //ServerSocket객체 생성
   
           System.out.println("Client 접속 대기중 .....");
           Socket s = ss.accept();  // 서버소켓을 이용하여 Socket 생성(접속대기)
   
           BufferedReader in = new BufferedReader(new InputStreamReader

           (s.getInputStream()));  // client로부터 문자열을 읽어온다.

           OutputStream out = s.getOutputStream();  //OutputStream 객체 생성
   
           System.out.println("연결 되었습니다.");
   
           String inputMessage; // 클라이언트의 메세지
   
           while((inputMessage = in.readLine()) != null)
           {
               System.out.println(inputMessage);

               // client로 받은 문자열을 byte스트림으로 변환하여 client로 다시 보냄.
               out.write((("[ech:"+s.getInetAddress().getHostName()

                                                +"]"+inputMessage)+"\n").getBytes());
           }
   
         }catch(IOException e)
         {
              System.out.println("접속 실패");
          }
 
    }

}


----- Socket Client Class-----

import java.net.*;
import java.io.*;


class EchoClient
{
     public static void main(String[] args)
     {
        try{
              Socket s = new Socket("localhost",5555);  // 소켓생성
             

              // Input/OutputStream객체 생성
              InputStream input = s.getInputStream();
              OutputStream output = s.getOutputStream();
     
              // 서버로부터 데이터를 읽어오기위한 버퍼생성

              BufferedReader in = new BufferedReader(new InputStreamReader

                                                                                         (input));
              // 문자열입력을 위한 버퍼 생성

              BufferedReader userin = new BufferedReader(new InputStreamReader

                                                                                      (System.in));
       
              System.out.println("insert message");
       

              // 문자열을 입력받아서 서버로 보넴   

              String msg =  userin.readLine();
              output.write((msg+"\n").getBytes());
   

              //  서버로부터 문자열을 읽어옴

              String sermsg = in.readLine();
         
     System.out.println(sermsg);
   
   
           }catch(IOException e)
           {
               System.out.println("접속 안됨");
            }
    }

}

 

'JAVA/JSP > Source' 카테고리의 다른 글

정렬/ 중복배제  (0) 2008.07.14
간단한 서버/클라이언트  (0) 2008.07.14
InetAddress/ URL  (0) 2008.07.14
Stream  (0) 2008.07.14
Image  (0) 2008.07.14
And