-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathNetworkClient.java
More file actions
39 lines (31 loc) · 1.11 KB
/
NetworkClient.java
File metadata and controls
39 lines (31 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 클라이언트
import java.io.*;
import java.net.*;
public class NetworkClient {
private String host;
private int port;
public NetworkClient(String host, int port) {
this.host = host;
this.port = port;
}
public synchronized String sendRequest(String request) {
try (Socket socket = new Socket(host, port);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
// 요청 전송
out.println(request);
StringBuilder sb = new StringBuilder();
String line;
while ((line = in.readLine()) != null) {
if ("END_OF_RESPONSE".equals(line)) {
// 서버 응답의 끝을 의미하는 구분자를 만난 경우 루프 종료
break;
}
sb.append(line).append("\n");
}
return sb.toString().trim();
} catch (Exception e) {
return "ERROR:" + e.getMessage();
}
}
}