TcpClient01 / TcpServer01

조수경·2021년 11월 18일
0

고급자바

목록 보기
51/97

TcpClient01

package kr.or.didt.tcp;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;




public class TcpClient01 {

	public static void main(String[] args) throws UnknownHostException, IOException {

		/*
		 * 현재 자신 컴퓨터를 나타내는 방법
		 * 1) 원래의 IP주소 : 예) 192.168.42.130
		 * 2) 지정된 IP주소 : 127.0.01
		 * 3) 원래의 컴퓨터 이름 : 예) SEM-PC
		 * 4) 지정된 컴퓨터 이름 : localhost
		 * 
		 */
		
		String serverIp = "192.168.42.145";
		
	    System.out.println(serverIp + "서버에 연결 중입니다...");
		System.out.println();
		
		
		// 서버의 IP주소와 포트번호를 지정하여 Socket객체를 생성한다.
		// Socket 객체는 생성이 완료되면 해당 서버로 요청신호를 보낸다.
		Socket socket = new Socket(serverIp, 7777);
		
		//이 부분 이후는 서버와 연결이 완료된 이후에 실행되는 코드이다.
		System.out.println("서버에 연결되었습니다...");
		System.out.println();
		
		// 서버에서 보내온 메시지를 받아서 화면에 출력하기
		// 상대방이 보내온 데이터는 Sorket의 InputStream객체를 이용한다.
		// (sorket.getInputStream()메서드로 입력용 스트림 객체를 구한다.)
		InputStream is = socket.getInputStream();
		DataInputStream dis = new DataInputStream(is);
		
		//서버가 보내온 자료를 받아서 출력한다.(자료 입력)
		System.out.println("서버에서 보내온 메시지 : " + dis.readUTF());
		System.out.println();
		
		System.out.println("연결을 종료합니다...");
		
		//스트림과 소켓 닫기
		dis.close();
		socket.close();
		
	}

}

TcpServer01

package kr.or.didt.tcp;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;


public class TcpServer01 {

	public static void main(String[] args) throws IOException {

		//TCP소켓 통신을 위해서 ServerSoket객체를 생성한다.
		ServerSocket server = new ServerSocket(7777);
		
		System.out.println("서버가 접속을 기다립니다...");
		
		/*
		 * accept()메서드 ==> 클라이언드에서 연결 요청이 올 때까지 기다린다.
		 *             ==> 연결 요청이 오면 클라이언트와 연결된 Socket객체를
		 *                 생성해서 반환한다.
		 */
		Socket socket = server.accept();
		
		//accept()메서드 이후의 내용은 연결이 완료되어야만 실행된다.
		System.out.println("클라이언트와 연결이 완료 되었습니다.");
		System.out.println();
		
		System.out.println("소캣으로 연결된 상대방에 대한 정보");
		System.out.println("IP주소 : " + socket.getInetAddress());
		//소캣으로 연결된 상대방의 ip주소를 연결하는 것
		System.out.println("Port번호 : " + socket.getPort());
		System.out.println();
		
		System.out.println("소켓으로 연결된 로컬 컴퓨터에 대한 정보");
		System.out.println("IP주소 : " + socket.getLocalAddress());
		System.out.println("Port번호 : " + socket.getLocalPort());
		
		//클라이언트에게 메시지 보내기
		// ==> Socket의 OutputStream객체를 이용하여 전송한다.
		//     (socket.getOutputStream()메서드를 이용하여 
		//      출력용 스트림 객체를 구할 수 있다.)
		OutputStream out = socket.getOutputStream();
		DataOutputStream dos = new DataOutputStream(out);
        
		//클라이언트에 메시지를 보낸다.(클라이언트로 출력하는 방식으로 처리한다.)
		dos.writeUTF("환영합니다. 어서오세요...");
		System.out.println("클라이언트에게 메시지를 보냈습니다...");
		
		//스트림과 소켓 닫기
		dos.close();
		socket.close();
		server.close();
		
		
		
		
	}

}

server먼저 연결 후

client연결시키기

profile
신입 개발자 입니다!!!

0개의 댓글

관련 채용 정보