336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
서버측 소스
/* Server.java */ /* Socket 클래스를 사용하기 위한 패키지 import */ import java.net.*; /* 데이터의 입출력 관련 클래스를 사용하기 위한 패키지 import */ import java.io.*; public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; // 서버용 대기 소켓 Socket socket = null; // 데이터 교환 소켓 DataInputStream dataInputStream = null; // 클라이언트로부터 데이터를 받기 위한 스트림 DataOutputStream dataOutputStream = null; // 클라이언트에게 데이터를 주기 위한 스트림 try { serverSocket = new ServerSocket(1234); // 1234번 포트로 서버 소켓 시작 /* 무한루프를 돌며 클라이언트의 요청이 들어올때마다 작업 수행 */ while(true) { /* accept 메서드: 클라이언트의 요청이 있을 때까지 무제한 대기 */ System.out.println("접속 대기 ...\n"); socket = serverSocket.accept(); /* 클라이언트의 요청이 들어오면 InputStream과 OutputStream 가져오기 */ dataInputStream = new DataInputStream(socket.getInputStream()); dataOutputStream = new DataOutputStream(socket.getOutputStream()); // TODO: Server가 해야 할 일의 예 while(true) { try { /* dataInputStream.readXXX 메서드로 데이터 읽어오기 시도 */ System.out.printf("Server: received %s\n", dataInputStream.readUTF()); } catch(Exception e) { /* 클라이언트가 접속을 종료했으면 예외로 처리되어 여기로 넘어옴. 특정 클라이언트에 대한 무한 루프 종료 */ break; } } } } catch(IOException e) { throw e; } finally { /* 소켓 사용 중 예외가 발생했거나 더 이상 수행할 내용이 없을 때 소켓 종료 */ if(serverSocket != null) serverSocket.close(); } } }
클라이언트측 소스의 경우
/* Client.java */ /* Socket 클래스를 사용하기 위한 패키지 import */ import java.net.*; /* 데이터의 입출력 관련 클래스를 사용하기 위한 패키지 import */ import java.io.*; public class Client { public static void main(String[] args) throws IOException { Socket socket = null; // 서버 접속을 위한 소켓 DataInputStream dataInputStream = null; // 서버로부터 전달되는 데이터를 읽는 스트림 DataOutputStream dataOutputStream = null; // 서버로 데이터를 보내는 스트림 try { /* Socket 생성자: IP주소, 포트 번호 */ socket = new Socket("127.0.0.1", 1234); /* 입출력 스트림 얻기 */ dataInputStream = new DataInputStream(socket.getInputStream()); dataOutputStream = new DataOutputStream(socket.getOutputStream()); // TODO: Client가 해야 할 작업의 예 /* 서버로 Hello, World 문자열을 보낸다. */ dataOutputStream.writeUTF("Hello, World!"); } catch(IOException e) { throw e; } finally { if(socket != null) socket.close(); } } }
'Programming Language > Java' 카테고리의 다른 글
Java의 XML 읽기/쓰기 (DOM 버전) (0) | 2015.01.06 |
---|---|
Java AWT로 메뉴 넣기 (0) | 2014.09.08 |
Java AWT로 창 닫기 구현하기 (1) | 2014.09.07 |
Java AWT로 빈 프레임 띄우기 (0) | 2014.09.07 |
Java에서 SQLite 사용하기 (0) | 2014.04.11 |