InetAddress Class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.net.InetAddress;
import java.util.Scanner;
public class InetAddressEx{
Scanner scanner;
public InetAddressEx(){
System.out.println("Host 이름을 입력하세요.");
scanner = new Scanner(System.in);
try{
InetAddress inetAddress = InetAddress.getByName(scanner.next());
System.out.println("Computer Name : " + inetAddress.getHostName());
System.out.println("Computer IP : " + inetAddress.getHostAddress());
} catch(Exception e){
System.out.println(e.getMessage());
}
}
}
//#################### mainclass
public class MainClass{
public static void main(String[] args){
new InetAddressEx();
}
}
| cs |
result

URL Class
DNS를 통한 IP정보를 이용하여 URL객체를 만든 후 네트워크 접속 및 URL 정보를 얻어온다.
* DNS(Domain Name System)란 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행함.
URLConnection Class
추상클래스로 URL 객체로부터 생성된다.
URL클래스의 openConnection() 메소드를 이용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import java.io.BufferedReader;
import java.util.Scanner;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.io.FileWriter;
public class URLConEX {
public URLConEX() {
String code = null;
System.out.println("웹 주소를 입력 하세요.");
Scanner scanner = new Scanner(System.in);
String address = scanner.next();
try{
URL url = new URL(address);
URLConnection con = url.openConnection(); // 접속
// con객체로부터 읽어온것을 버퍼에..
BufferedReader webData = new BufferedReader(new InputStreamReader(con.getInputStream()));
FileWriter fw = new FileWriter("C:\\aaa\\file.html", false);
// 한줄씩 읽음 null이 아닐때까지
while((code = webData.readLine()) != null){
fw.write(code);
}
System.out.println("The End");
// 종료
fw.close();
webData.close();
} catch (Exception e) {
e.printStackTrace();
} finally{
}
}
}
//#################### mainclass
public class MainClass{
public static void main(String args[]){
new URLConEX();
}
}
| cs |
result
웹 주소를 입력하세요.
http://www.google.com
The end
웹페이지의 소스코드를 얻어온다.
Socket
네트워크 소켓(network socket)은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다. 오늘날 컴퓨터 간 통신의 대부분은 인터넷 프로토콜을 기반으로 하고 있으므로, 대부분의 네트워크 소켓은 인터넷 소켓이다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다.
일반적인 Socket 프로세스
1. Server에서 ServerSocket을 만들고, Client의 요청을 기다림.
2. Client에서 Socket을 만들고, I/O Stream을 만들어 Server로 요청함.
3. SerVer에서 Client의 요청을 받아 Socket을 만들고, I/O Stream을 만들음.
4. 통신
5. Socket Close
간단한 채팅 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
//############### ServerSocket
import java.io.BufferedReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.PrintWriter;
import java.io.InputStreamReader;
public class MakeServerSocket{
ServerSocket serverSocket = null; // 기다리는 소켓
Socket socket = null; // 통신하는 소켓
PrintWriter writer = null;
BufferedReader reader = null;
String lineStr;
public MakeServerSocket(){
try {
serverSocket = new ServerSocket(2000); // portNumber
while(true){
// Client 요청
socket = serverSocket.accept();
System.out.println("Client 요청");
writer = new PrintWriter(socket.getOutputStream(), true); // 출력
reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 입력
while((lineStr = reader.readLine()) != null){
writer.write(lineStr);
System.out.println("input : " + lineStr);
}
writer.close();
reader.close();
socket.close();
}
} catch (Exception e) {}
}
public static void main(String[] args) {
new MakeServerSocket();
}
}
//############### ClientSocket
import java.io.BufferedReader;
import java.net.Socket;
import java.io.PrintWriter;
import java.io.InputStreamReader;
public class MakeClientSocket{
Socket socket = null;
PrintWriter writer = null;
BufferedReader reader = null;
public MakeClientSocket(){
try{
socket = new Socket("localhost", 2000); // host, port
writer = new PrintWriter(socket.getOutputStream(), true);
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String str = null;
BufferedReader sReader = new BufferedReader(new InputStreamReader(System.in));
while((str = sReader.readLine()) != null){
writer.println(str);
System.out.println(" output : " + str);
}
writer.close();
reader.close();
sReader.close();
} catch(Exception e) {}
}
public static void main(String[] args) {
new MakeClientSocket();
}
}
| cs |
Server Class와 Client Class 둘 모두 실행함.
댓글
댓글 쓰기