통신
요청-응답으로 이루어짐
TCP
UDP
client
package practice;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
Socket clientSocket = null;
BufferedReader in = null;
PrintWriter out = null;
final Scanner sc = new Scanner(System.in);
try {
clientSocket = new Socket("localhost", 5000);
out = new PrintWriter(clientSocket.getOutputStream());
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream(), "UTF-8"));
String msg;
while (true) {
System.out.println("서버로 보낼 문자열을 입력하고 엔터키를 치세요");
msg = sc.nextLine();
if (msg.equalsIgnoreCase("quit")) {
out.println(msg);
out.flush();
break;
}
out.println(msg);
out.flush();
msg = in.readLine();
System.out.println("서버로부터 온 메시지 : " + msg);
}
} catch (Exception e) {
e.printStackTrace(out);
} finally {
out.close();
try {
clientSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Server
package practice;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class Server {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket clientSocket = null;
BufferedReader in = null;
PrintWriter out = null;
Scanner sc = new Scanner(System.in);
try {
serverSocket = new ServerSocket(5000);
System.out.println("연결을 기다리고 있음");
clientSocket = serverSocket.accept();
out = new PrintWriter(new OutputStreamWriter(clientSocket.getOutputStream(), "UTF-8"), true);
// in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()),
// "UTF-8");
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream(), "UTF-8"));
System.out.println("클라이언트와 연결되었음");
while (true) {
String msg = in.readLine();
if (msg.equalsIgnoreCase("quit")) {
System.out.println("클라이언트에서 연결을 종료하였음");
break;
}
System.out.println("클라이언트가 보낸 문자열 : " + msg);
System.out.println("클라이언트로 보낼 문자열을 입력하고 엔터를 치세요: ");
String osmg = sc.nextLine();
out.write(osmg + "\n");
out.flush();
}
out.close();
clientSocket.close();
serverSocket.close();
} catch (Exception e) {
e.printStackTrace(out);
}
}
}