
InetAddress를 얻고 싶다면 다음과 같은 메소드를 호출하면 된다.InetAddress ia = InetAddress.getLocalHost();
만약 컴퓨터의 도메인 이름을 알고 있다면
java.net 패키지에서 ServerSocket과 Socket클래스를 제공하고 있다. ServerSocket은 클라이언트의 연결을 수락하는 서버쪽 클래스이고 Socket클래스는 클라이언트에서 양쪽에서 데이터를 주고받을 때 사용되는 클래스이다.
ServerSocket serverSocket = new ServerSocket(50001);
ServerSocket 객체가 생성 되었다면 연결 요청 수락을 위해 accept()메소드를 실행해야 한다. 아래의 코드는 TCP 서버의 가장 기본적인 형식이다.
package ch19.sec03.exam01;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.netServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class ServerExample{
private static ServerSocket serverSocket = null;
public static void main(String[] args) {
System.out.println("서버 종료 : Q+ Enter");
// TCP start
starServer();
//keyboard
Scanner scanner = new Scanner(System in);
while(true) {
String key = scanner.nextline():
if(key.equals("q")){
break;
}
}
scanner.close();
//TCP exit
stopServer();
}
public static void startServer(){
Thread thread = new Thread(){
@override
public void run(){
try{
serverSocket = new ServerSocket(50001);
while(true){
Socket socket = socketServer.accept();
InetSocketAddress isa = (InetSocketAddress) socket.getRemotesocketAddress();
System.out.println(isa.gethostName() + "의 연결 요청을 수락함");
socket.close();
System.out.println(isa.gethostName() + "의 연결 끊기);
}
} catch(IOException e) {
}
}
};
//stopserver코드도 비슷한 양식



