----클라이언트 ----
import java.io.*;
import java.net.*;
public class ClientEx {
public static void main(String[] args) {
BufferedReader in = null;
BufferedReader stin = null;
BufferedWriter out = null;
Socket socket = null;
try {
socket = new Socket("localhost", 9999); // 클라이언트 소켓 생성
in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 서버로부터의 입력 스트림
stin = new BufferedReader(new InputStreamReader(System.in)); // 키보드로부터의 입력 스트림
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); // 서버로의 출력 스트림
String outputMessage;
while (true) {
outputMessage = stin.readLine(); // 키보드에서 한 행의 문자열 읽음
if (outputMessage.equalsIgnoreCase("bye")) { // "bye"가 입력되면 메시지 전송 후 연결 종료
out.write(outputMessage);
out.flush();
break;
}
out.write("클라이언트>"+outputMessage+"\n"); // 키보드에서 읽은 문자열 전송
out.flush();
String inputMessage = in.readLine(); // 서버에서 한 행의 문자열 읽음
System.out.println(inputMessage); // 서버가 보낸 메시지 화면에 출력
}
} catch (IOException e) {
System.out.println(e.getMessage());
} finally {
try {
socket.close(); // 클라이언트 소켓 닫기
} catch (IOException e) {
System.out.println("서버와 채팅 중 오류가 발생했습니다.");
}
}
}
}
------ 서버 ------
import java.io.*;
import java.net.*;
public class ServerEx {
public static void main(String[] args) {
BufferedReader in = null;
BufferedReader stin = null;
BufferedWriter out = null;
ServerSocket listener = null;
Socket socket = null;
try {
listener = new ServerSocket(9999); // 서버 소켓 생성
socket = listener.accept(); // 클라이언트로부터 연결 요청 대기
System.out.println("연결됨");
in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 클라이언트로부터의 입력 스트림
stin = new BufferedReader(new InputStreamReader(System.in)); // 키보드로부터의 입력 스트림
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); // 클라이언트로의 출력 스트림
String inputMessage;
while (true) {
inputMessage = in.readLine(); // 클라이언트에서 한 행의 문자열 읽음
if (inputMessage.equalsIgnoreCase("bye")){ // 클라이언트가 "bye"를 보내면 연결 종료
System.out.println("안뇽");
break;
}
System.out.println(inputMessage); // 클라이언트가 보낸 메시지 화면에 출력
String outputMessage = stin.readLine(); // 키보드에서 한 행의 문자열 읽음
out.write("서버>" + outputMessage+"\n"); // 키보드에서 읽은 문자열 전송
out.flush();
}
} catch (IOException e) {
System.out.println(e.getMessage());
} finally {//try문을 빠져나가면 실행됨.
try {
socket.close(); // 클라이언트와 통신용 소켓 닫기
listener.close(); // 서버 소켓 닫기
} catch (IOException e) {
System.out.println("클라이언트와 채팅 중 오류가 발생했습니다.");
}
}
}
}
'Computer Science > JAVA' 카테고리의 다른 글
java의 기본원리 (0) | 2014.04.01 |
---|---|
자료구조와 객체의 차이 (0) | 2014.04.01 |
패널 + 리스너 + 값 넘기기 (0) | 2013.01.03 |
간단한 클래스간의 값 주고받기 (0) | 2012.12.24 |
마방진 알고리즘 (0) | 2012.11.02 |