1. 소켓통신 실습

쫌 더 자세히

package socket1;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerFile {
// 클라이언트 연결을 받는 소켓
ServerSocket serverSocket;
// 실제 통신을 하는 소켓
Socket socket; // Ctrl + Space
BufferedReader br;
public ServerFile() {
System.out.println("1. 서버소켓 시작--------------------");
try {
serverSocket = new ServerSocket(10000);
System.out.println("2. 서버소켓 생성완료 : 클라이언트 접속 대기중 ------------------");
socket = serverSocket.accept(); // 클라이언트 접속 대기중 ....
System.out.println("3. 클라이언트 연결완료 - buffer연결완료(read)");
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String msg = br.readLine();
System.out.println("4. 클라이언트로 부터 받은 메시지 : " + msg);
} catch (Exception e) {
System.out.println("서버소켓 에러 발생함" + e.getMessage());
}
}
public static void main(String[] args) {
new ServerFile();
}
}
package socket1;
import java.io.*;
import java.net.Socket;
public class ClientFile {
Socket socket;
BufferedWriter bw;
BufferedReader br;
public ClientFile() {
try {
System.out.println("1. 클라이언트소켓 시작-------------------------");
socket = new Socket("localhost", 10000); //라인 실행시 -> 서버소켓의 accept() 메서드 호출
System.out.println("2. 버퍼(write) 연결완료 ------------------");
bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
// 키보드 연결
System.out.println("3. 키보드 스트림 + 버퍼(read) 연결완료 -----------------");
br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("4. 키보드 메시지 입력 대기중 ----------------------");
String keyboardMsg = br.readLine();
// 메시지 끝을 알려줘야 한다. \n
bw.write(keyboardMsg+"\n");
bw.flush();
} catch (Exception e) {
System.out.println("클라이언트소켓 에러 발생함 : " + e.getMessage());
}
}
public static void main(String[] args) {
new ClientFile();
}
}
코드 그림으로 정리

참고) localhost 개념

- 자기 자신의 ip
- 110.5.8.7
- 본인 스스로를 나타내는 주소 : 127.0.0.1은 localhost와 같다.
Share article