자바 11주차 두번째 일기

네트워크 프로그램입니다. 제가 이시간에 면접을 보고 와서 동영상을 보고 공부하는데도 어렵네여 ㅠ

InetAddress클래스
인터넷에서 사용하는 32비트 주소체계인 IP주소를 액세스하기 위한 추상 클래스

이것을 이용하면 Ipv6용 프로그램으로 포팅 할 때 투명성을 유지할 수 있다.



서버
import java.net.*;  <- Socket을 사용함으로
import java.io.*;  <-Input ,OutStream을 사용함으로

class JavaServer{

private int port; 
private ServerSocket servSocket;
private Socket clntSocket;

public JavaServer(int port){  <- 메인에서 인수를 받아서 결정
 this.port = port;
}
public void listen(){  <- 연결을 기다리는 메소드
 try{
  servSocket = new ServerSocket (port);
  clntSocket = servSocket.accept(); 
 }catch (IOException e){
  System.out.println ("IOExceptiob : " + e.getMessage());
 }
}

public void handleConnection(){  <- 데이터를 주고 받는 메소드
 try{
  BufferedReader in = new BufferedReader(new InputStreamReader(clntSocket.getInputStream()));
  PrintWriter out = new PrintWriter (clntSocket.getOutputStream(),true);
  System.out.println ("Java Server가"+clntSocket.getInetAddress().getHostName()+"와 연결되었습니다.");
  System.out.println ("첫 입력라인은"+in.readLine()+"입니다.");  //in.readLine()을 출력
  out.println ("Java Server에 잘 연결되었습니다.");
   clntSocket.close();  //Socket을 종료
 }catch(IOException e){
  System.out.println ("IOException:"+e.getMessage());
 }
}
 public static void main (String []args){
  int port = 8088; //디폴트값
  if (args.length>0){  //인수르 받은 숫자가 있으면
   port = Integer.parseInt(args[0]); // 그 값을 숫자로 바꿔서 포트에 넣는다 인수는 스트링이다!!
  }
 
  JavaServer jServer = new JavaServer(port);
  jServer.listen();
  jServer.handleConnection();
 }
}





클라이언트 
import java.net.*;  //위와 동일
import java.io.*;


class JavaClient{
private Socket cSocket;

public JavaClient(String addr, int port){
 try{
  cSocket = new Socket (addr, port);  //서버의 주소와 포트를 가지고 객체를 만듬
 }catch (IOException e){
 System.out.println ("IOException :"+e.getMessage());
 }
 }

public void handleConnection(){
 try{
  BufferedReader in = new BufferedReader(new InputStreamReader(cSocket.getInputStream()));
  PrintWriter out = new PrintWriter (cSocket.getOutputStream(), true);
 System.out.println ("Java Client가"+cSocket.getInetAddress().getHostName()+"와 연결되었습니다.");
 out.println ("여기는 Java Client입니다.");
 System.out.println ("서버로 부터의 첫입력라인은"+in.readLine()+"입니다.");
 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  cSocket.close();
 }catch (IOException e){
 System.out.println ("IOException : "+ e.getMessage());
 }
}
 public static void main (String []args){
 String addr = "203.237.163.173";  //이 주소는 내 컴퓨터 주소를 사용한다.
 int port = 8088;  //위와 동일
 if (args.length>0){
 addr = args[0];
 port = Integer.parseInt(args[1]);
 }
 JavaClient jClient = new JavaClient (addr, port);
 jClient.handleConnection();
 }
}
네트워크 프로그램이 좀 힘드네여 ㅠㅠ
더 공부 해봐야 겠습니다
더 열심히 ^^

 

by 파브레가스 | 2008/11/18 21:21 | 실험프로젝트2학기 | 트랙백 | 덧글(1)

트랙백 주소 : http://kim6351.egloos.com/tb/1123540
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 김교수 at 2008/11/20 17:48
전체적인 그림을 먼저 익숙하게 이해해야 합니다.

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶