1. 클라이언트가 서버로 메시지를 보낼 수 있는 환경을 구축
2. 포트번호는 개인의 환경에 맞추어 바꾸어 주면 됨
3. Server Code와 Client Code를 같은 패키지 안에 넣어주는 것을 권장
Server Code
package server_test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class EchoServer {
private final ServerSocket serverSocket;
public EchoServer() throws Exception{
int port = 5099;
serverSocket = new ServerSocket(port);
}
public void connection() throws IOException{
System.out.println("waiting for client...");
Socket socket = serverSocket.accept();
System.out.println("connect to client...");
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter pw = new PrintWriter(socket.getOutputStream());
while (true){
String msg = br.readLine();
System.out.println("client mag : "+msg);
pw.println("echo : "+msg);
pw.flush();
if(msg.equals("bye"))break;
}
br.close();
}
public static void main(String[] args) throws Exception{
var server = new EchoServer();
server.connection();
}
}
Client Code
package server_test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class EchoClient {
private Socket socket;
public void connection() throws Exception{
socket = new Socket(InetAddress.getLocalHost().getHostName(), 5099);
PrintWriter pw = new PrintWriter(socket.getOutputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedReader inputStr = new BufferedReader(new InputStreamReader(System.in));
String msg = "";
while (!msg.contains("bye")){
System.out.println("send to server msg");
msg = inputStr.readLine();
pw.println(msg);
pw.flush();
String echo = br.readLine();
System.out.println("Server >> "+echo);
}
br.close();
}
public static void main(String[] args) throws Exception{
var client = new EchoClient();
client.connection();
}
}
'Java 응용' 카테고리의 다른 글
Java 응용 (10. GUI기반 자바 타자 연습 게임) (0) | 2024.06.15 |
---|---|
Java 응용 (8. 끝말잇기 게임) (0) | 2024.04.11 |
Java 응용 (7. Thread를 이용한 경마 게임) (0) | 2024.04.08 |
Java 응용 (6. 랜덤한 숫자 맞추기) (0) | 2024.04.08 |
Java 응용 (5. 이메일 검색 서비스) (0) | 2024.03.14 |