2008년 11월 18일
자바 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)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]