BackEnd/JAVA

JAVA Server - Client 서버 클라이언트 연결

H_Develop 2022. 8. 9. 09:23

서버

 

import java.net.*;
import java.io.IOException;
public class MySer extends Thread{
	ServerSocket ss;
	public MySer() {	// 생성자
		try {
			ss = new ServerSocket(3000);	// 3000은 포트번호
			System.out.println("Server ready...");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	@Override
	public void run() {
		while(true) {
			try {
				Socket s = ss.accept(); // 접속자가 올 때까지 기다린다. 클라이언트의 요청을 받는다.
				String ip = s.getInetAddress().getHostAddress(); // 접속한 클라이언트의 IP
				System.out.println(ip + " 님이 왔다 감");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	public static void main(String[] args) {

		MySer ms = new MySer();
		ms.start();
		
	}

}	// 서버 완성

 

클라이언트

 

import java.net.*;
import java.io.IOException;
import java.net.UnknownHostException;
public class MyCli {
	public static void main(String[] args) throws UnknownHostException, IOException {
		Socket s = new Socket("61.98.237.228", 3000);	// IP 주소와 포트를 넣어 서버에 접속
	}
}

ip주소는 내꺼로 확인. cmd에서 ipconfig 치고 ip 확인

 

 

 

 

Server

 

package Ser_Cli;
import java.net.*;
import java.io.*;
public class My_Server extends Thread{
	ServerSocket ss;
	public My_Server() {
		try {
			ss= new ServerSocket(3001);
			System.out.println("서버 시작");
		} catch (Exception e) {}
	}
	
	@Override
	public void run() {
		while (true) {
			try {
				Socket s = ss.accept();	// client를 계속 기다린다.
				BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
				String msg = reader.readLine();
				String ip = s.getInetAddress().getHostAddress();
				System.out.println(ip + " : " + msg);
			} catch (Exception e) {}
		}
	}
	
	public static void main(String[] args) {
		new My_Server().start();
	}
}

 

 

Client

 

package Ser_Cli;

import java.util.Scanner;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.*;
public class My_Client {

	public static void main(String[] args) {
		System.out.println(("입력 : "));
		Scanner sc = new Scanner(System.in);
		String msg = sc.nextLine();
		if(msg != null && msg.trim().length() >0) {
				Socket s = null;
			
			try {
				s = new Socket("61.98.237.228", 3001);
				PrintWriter out = new PrintWriter(s.getOutputStream());
				out.write(msg);
				out.flush();
				if(out != null) {
					out.close();
				}
			} catch (Exception e) {
			} finally {
				try {
					if(s != null) {
						s.close();
					}
				}catch (Exception e) {}
			}
		}
	}
}