네트워킹을 할 수 있는 클래스 객체
Client가 요청
을 하면 Server가 요청을 처리
한다.
소켓 생성시에는 "포트번호"를 부여해야 한다.
포트번호와 관련된 네트워크 프로그래밍은 해당 링크를 참고하면 된다.
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
public class ServerTest {
public static void main(String[] args) {
// 포트번호 설정
int port = 33333;
try {
ServerSocket serverSocket = new ServerSocket(port);
while (true) {
Socket clientSocket = serverSocket.accept();
System.out.println(clientSocket.getInetAddress() + "접속");
// 보내기
OutputStream out = clientSocket.getOutputStream();
PrintWriter writer = new PrintWriter(out, true);
// 문자열로 전송해야 한다.
writer.println(new Date().toString());
// 받기
InputStream in = clientSocket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
System.out.println(reader.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClentServer {
public static void main(String[] args) {
int port = 33333;
String localHost = "xxx.xx.xx.xx";
try {
Socket socket = new Socket(localHost, port);
// 보내기
OutputStream out = socket.getOutputStream();
String str = "hello server";
// 바이트 단위로 쪼개서 보내기
out.write(str.getBytes());
// 받기
InputStream in = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
System.out.println(reader.readLine());
// IP주소를 찾지 못할 때 예외처리
} catch (UnknownHostException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
결과
Server
/xxx.xx.xx.xx접속
hello server
Client
Sat Jan 23 20:38:22 KST 2021