서버는 클라이언트의 연결을 기다리고, 클라이언트가 보내는 메시지를 수신하여 출력합니다.
package ex03.net.tcp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerChat {
public static void main(String[] args) throws IOException {
int port = 8000;
ServerSocket server = new ServerSocket(port);
Socket client = null;
System.out.println("Chat Server Start~~~~");
while (true) {
client = server.accept();
InputStream is = client.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
PrintStream ps = new PrintStream(System.out);
ps.print(client.getInetAddress().getHostAddress());
String str = br.readLine();
byte[] buffer = str.getBytes("utf-8");
String message = new String(buffer, "utf-8");
ps.print(" : 에서 수신 메세지 ==> " + message);
br.close();
client.close();
}
}
}
ServerSocket을 8000번 포트에 바인딩하여 생성합니다.accept() 메서드를 호출하여 클라이언트의 연결 요청을 수락합니다.BufferedReader를 사용하여 클라이언트로부터 메시지를 읽어옵니다.클라이언트는 서버에 연결하여 메시지를 보내고, 서버로부터 응답을 받습니다.
package ex03.net.tcp;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.net.Socket;
public class ClientChat {
public static void main(String[] args) throws IOException {
int port = 8000;
String ip, str;
PrintStream ps = new PrintStream(System.out);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
ps.print("접속할 서버 ip ===>"); ip = br.readLine();
ps.print("전송할 메세지 ===>"); str = br.readLine();
byte[] buffer = str.getBytes("utf-8");
String message = new String(buffer, "utf-8");
Socket client = new Socket(ip, port);
OutputStream os = client.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
bw.write(message, 0, message.length());
bw.flush(); // 버퍼 비우기
bw.close(); client.close();
ps.println(ip + " 에 메세지 전송 성공~~");
ps.close();
}
}
BufferedWriter를 사용하여 서버로 메시지를 전송합니다.ServerChat 클래스를 먼저 실행하여 서버를 시작합니다. "Chat Server StartClientChat 클래스를 실행하여 클라이언트가 서버에 연결하고 메시지를 전송합니다. 클라이언트와 서버 간의 메시지 주고받기를 콘솔에서 확인할 수 있습니다.1.서버 오픈

2.서버 응답확인
