파일 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();
}
}
Web Server (= HTTP Server)
웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램
WAS (Web Application Server)
인터넷에서 HTTP를 이용해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)로 볼 수 있다.
포트는 '논리적인 접속장소'이며, 네트워크 상에서 통신을 할때 IP를 토대로 해당 서버가 있는 컴퓨터에 접근한다.
컴퓨터에는 여러가지 서버가 동시에 구동될 수 있고, 그 서버중에 어느 서버에 접속해야하는지 컴퓨터에 알려주어야 하기때문에 포트번호가 존재한다.
포트 번호는 컴퓨터 상에서 실행되고 있는 서버를 구분하기 위해서
16비트의 논리적인 할당으로 0~65536까지로 구분지어지며, 이 중에 0~1023번 포트까지는 이미 어떤 포트가 사용할지가 미리 정해져있다.
예를들어 http통신에는 80번 포트를 사용한다.
프로토콜이란 원거리 통신 장비 사이의 통신 규약을 뜻한다.
프로토콜의 종류에는 HTTP, FTP, SMTP, www등이 있다.
Apache Tomcat
- 무료 오픈소스로, 세계에서 가장 널리 쓰이는 웹서버이며, servlet과 JSP에 주로 사용된다.
NgniX
- 현재 전세계 점유율 1위의 웹서버이며, 가볍고 높은 성능으로 점점 점유율을 올리는 중이다.
ZEUS
- 티맥스소프트에서 개발한 국산 웹 서버이다
IIS
- Microsoft사에서 개발해서 Microsoft사의 다른 프로그램(mySQL등과 호환이 가능하다는 장점이 있다)