반응형

자바, TCP 통신 (서버/클라이언트) 연결 설정 및 통신 예제

 

[Server.java]

package tcp_networking;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
	public static void main(String[] args) {
		ServerSocket serverSocket = null;
		try {
			serverSocket = new ServerSocket();
			serverSocket.bind(new InetSocketAddress("localhost", 5001));
			while(true) {
				System.out.println("[연결 기다림!]");
				Socket socket = serverSocket.accept();
				InetSocketAddress isa = (InetSocketAddress) socket.getRemoteSocketAddress();
				System.out.println("[연결 수락함] " + isa.getHostName());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		if (!serverSocket.isClosed() ) {
			try {
				serverSocket.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

 

[Client.java]

package tcp_networking;
import java.net.InetSocketAddress;
import java.net.Socket;
public class Client {
	public static void main(String[] args) {
		Socket socket = null;
		try {
			socket = new Socket();
			System.out.println("[연결 요청]");
			socket.connect(new InetSocketAddress("localhost", 5001));
			System.out.println("[연결 성공]");
		} catch (Exception e) {
			e.printStackTrace();
		}
		try {
			if (!socket.isClosed()) {
				socket.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

서버 실행 후, 클라이언트 실행 시 서버 화면 변화

[연결 기다림!]
[연결 수락함] 127.0.0.1
[연결 기다림!]

 

서버 실행 후, 클라이언트 실행 시 클라이언트 화면 변화

[연결 요청]
[연결 성공]

 

 

데이터를 주고받거나 멀티스레드로 처리하는 부분은 동영상을 참고하세요.

 

 

[참고] 이것이 자바다 - 18.7 TCP 네트워킹(1)

https://youtu.be/twd6mwUS1Bc

 

[참고] 이것이 자바다 - 18.7 TCP 네트워킹(2)

https://youtu.be/IMIXyA51XTQ

 

반응형

+ Recent posts