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연결시키기
