서버 프로그램 작성
HTTP - TCP(ServerSocket, Socket)
ServerSocket - 서버
Socket - 클라이언트
서버 소스
class EchoThread extends Thread {
private Socket s;
EchoThread(Socket s) {
this.s = s;
}
public void run() {
try {
// 접속한 클라이언트가 보내준 메세지 읽기
DataInputStream dis = new DataInputStream(s.getInputStream());
// 접속한 클라이언트에게 메세지 전송하기
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
while (true) {
String msg = dis.readUTF();
if (msg.equals("quit")) break;
dos.writeUTF(msg);
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(10001);
while (true) {
Socket s = server.accept();
System.out.println("클라이언트 접속");
// 스레드 방식으로 변경
EchoThread et = new EchoThread(s);
et.start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
서버 결과
클라이언트 접속 // 클라이언트 접속 후 출력
클라이언트 소스
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 10001);
Scanner scanner = new Scanner(System.in);
DataInputStream dis = new DataInputStream(socket.getInputStream());
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
while(true) {
System.out.println("전송 메시지(종료 : quit) : ");
String msg = scanner.nextLine();
dos.writeUTF(msg);
if(msg.equals("quit")) break;
String recvMsg = dis.readUTF();
System.out.println("에코메시지 : " + recvMsg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
클라이언트 결과
전송 메시지(종료 : quit) :
test msg // 입력한 메시지
에코메시지 : test msg
전송 메시지(종료 : quit) :
quit // 입력한 메시지
Java - 리플렉션 (reflect) (0) | 2018.10.08 |
---|---|
Java - ServerSocket, 클라이언트에 응답하기 (0) | 2018.10.04 |
Java - Jsoup을 이용한 크롤링으로 네이버 실시간 순위 가져오기 (20.07.30 수정) (1) | 2018.10.04 |
Java - json 개요, Gson 사용 (0) | 2018.10.04 |
Java - XML 파싱 후 List로 출력하기 (0) | 2018.10.04 |
댓글 영역