반응형
Server
import java.io.*;
import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception {
ServerSocket welcomeSocket = new ServerSocket(6789);
while (true) {
Socket connectionSocket = welcomeSocket.accept();
ClientThread ct = new ClientThread(connectionSocket);
ct.start();
}
}
}
class ClientThread extends Thread {
Socket connectionSocket;
public ClientThread(Socket socket) {
this.connectionSocket = socket;
}
public void run() {
try {
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
while (true) {
String clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
String capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
} catch (IOException e) {
System.out.println("Connection lost.");
}
}
}
Client
import java.io.*;
import java.net.*;
class TCPClient {
public static void main(String argv[]) throws Exception {
String sentence;
String modifiedSentence;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while (true) {
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER: " + modifiedSentence);
}
}
}
서버가 포트 6789에서 들어오는 클라이언트 연결을 수신하고 들어오는 각 연결에 대해 새 스레드를 시작하는 간단한 서버-클라이언트 아키텍처를 구현합니다. 클라이언트는 서버에 연결하고 서버에 문자열을 보내고 서버에서 수정된 버전의 문자열(이 경우 문자열은 대문자로 표시됨)을 수신합니다. 클라이언트와 서버는 입력 및 출력 스트림을 사용하여 통신합니다.
반응형
'Spring Boot' 카테고리의 다른 글
[JAVA] TCP/IP 데이터통신 파일암호화 전송 서버,클라이언트 (0) | 2023.02.09 |
---|---|
[JAVA] TCP/IP 데이터통신 데이터 암호화 서버,클라이언트 (0) | 2023.02.09 |
[SpringBoot] Apache PDFBox 이용한 PDF to Image 변환처리 (0) | 2023.02.09 |
[Svelte + Springboot] Svelte에서 파일다운로드 구현 (0) | 2023.02.09 |
[Svelte + Springboot] Svelte에서 파일업로드 구현 (0) | 2023.02.09 |