자바 프로그래밍 22일차 수업

김형우·2022년 11월 22일
0

Java

목록 보기
21/22

1. 1:1 채팅을 짜시오.

파일 4개, 일단 보고 카피

Sender.java


class Sender extends Thread {

 String name;
 Socket socket;
 DataOutputStream out;
 
 Sender(Socket socket) {
 	
    try{ 
    	out = new DataOutputStream(socket.getOutputStream());
        name = "[" + socket.getInetAddress() + ":" + socket.getPort() + "]";
    }
    catch(Exception e){
    }
 
 }
 
 @Override
 
 public void run () {
 	Scanner scanner = new Scanner(System.in);
    
    while(out != null){
    	try{
        	out.writeUTF(name + scanner.nextLine();
 	
 	}catch(Exception e){}
	}
}

Receiver.java


Socket socket;
DataInputStream in;

Receiver(Socket socket) {
	try{
	in = new DataInputStream(socket.getInputStream());
	}catch(Exception e){
    }
}

public void run() {
  
  	while(in != null){
     try{
     	System.out.println(in.readUTF());
     
     }catch(Exception e) {
     }
	}
}

TCPServer.java


class TCPServer {

	public static void main(String[] args) {
    
    ServerSocket serversocket = null;
    Socket socket = null;
    
    serversocket = new ServerSocket(7777);
    // 포트번호 지정
    socket = serversocket.accept();
    
    Sender sender = new Sender(socket);
    Receiver receiver = new Receiver(socket);
    
    sender.start();
    receiver.start();
	
    }
    catch(Exception e){
    }
    }
   }
}

TCPClient.java


class TCPClient {

	public static void main(String[] args) {
	
    	String serverIP = "127.0.0.1";
		
        System.out.println("서버에 연결되었습니다.");

		Socket socket = new Socket(serverIP, 7777); // IP와 포트
        
        Sender sender = new Sender(socket);
        Receiver receiver = new Receiver(socket);
        
        sender.start();
        receiver.start();
        
	}
}

2. 아래의 용어에 대하여 설명하시오.

  • Web Server (= HTTP Server)

    웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램

  • WAS (Web Application Server)

    인터넷에서 HTTP를 이용해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)로 볼 수 있다.

3.Port Number (포트 번호) 란?

포트는 '논리적인 접속장소'이며, 네트워크 상에서 통신을 할때 IP를 토대로 해당 서버가 있는 컴퓨터에 접근한다.
컴퓨터에는 여러가지 서버가 동시에 구동될 수 있고, 그 서버중에 어느 서버에 접속해야하는지 컴퓨터에 알려주어야 하기때문에 포트번호가 존재한다.
포트 번호는 컴퓨터 상에서 실행되고 있는 서버를 구분하기 위해서
16비트의 논리적인 할당으로 0~65536까지로 구분지어지며, 이 중에 0~1023번 포트까지는 이미 어떤 포트가 사용할지가 미리 정해져있다.
예를들어 http통신에는 80번 포트를 사용한다.

4. 프로토콜(Protocol)이란 무엇이며,프로토콜의 종류는?

프로토콜이란 원거리 통신 장비 사이의 통신 규약을 뜻한다.
프로토콜의 종류에는 HTTP, FTP, SMTP, www등이 있다.

5.웹서버 종류는?

Apache Tomcat

  • 무료 오픈소스로, 세계에서 가장 널리 쓰이는 웹서버이며, servlet과 JSP에 주로 사용된다.

NgniX

  • 현재 전세계 점유율 1위의 웹서버이며, 가볍고 높은 성능으로 점점 점유율을 올리는 중이다.

ZEUS

  • 티맥스소프트에서 개발한 국산 웹 서버이다

IIS

  • Microsoft사에서 개발해서 Microsoft사의 다른 프로그램(mySQL등과 호환이 가능하다는 장점이 있다)
profile
개발자 지망생

0개의 댓글