Tổng hợp JAVA Lập trình mạng (phần 1)

chuotfx

Member
4/4/10
365
25
18
Hi, cã nhà. Như đã hứa ở trên thì mình sẽ tổng hợp những gì học được từ Lập trình mạng với java.

Nếu anh chị em hứng thú thì mình sẽ tiếp tục cho đến hết. Còn kô thì coi như mở hàng cho loạt bài Mạng cho 4rum vì thấy nó thiếu thiếu quá. Mình chỉ là múa rìu qua mắt thợ, có j anh em bỏ qua nha, nếu mình sai thì cứ nói, học mà cùng nhau thảo luận thì mới nhanh tiến bộ được.

==============================================

Lập trình mạng bao gồm nhiều vấn đề cần giải quyết lắm. Nhưng trước mắt chúng ta đi vào phần đầu tiên là địa chỉ trên mạng. Mạng cũng như ngoài đời, mình có 1 căn nhà thì căn nhà đó sẽ đc cấp địa chĩ ( kô tính các pác nào ở trên núi nha ).

Lý thuyết về IP thì mình kô nhắc tới, trên google rất nhiều.Chúng ta quan tâm ở đây là sử dụng các lớp của java để lập trình cho hiệu quả.

Với lập trình mạng thì dùng gói : java.net.*
Trong bài này thì chúng ta quan tâm tới lớp InetAddress và nó cũng có 2 lớp con cho IPv4 và IPv6.

Nó biểu diển 1 địa chỉ IP trên mạng với 2 trường là : HostName kiểu string và Address kiểu int.

Nó kô có constructor nên muốn tạo đối tượng thì chúng ta thông qua phương thức static của nó là : InetAddress.getByName(). Tham số truyền vào là 1 tên trang web hoặc 1 địa chỉ IP j cũng đc.

Nó hoạt động thông qua DNS server để phân tích tham số mà ta truyền vào đó. Cái này hay hơn C# 1 chút :D

Sau đây là demo nho nhỏ :

PHP:
package TH_MANG;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class IPAddress {
	public static void main (String[] args) {
	    try {
	      InetAddress address1 = InetAddress.getByName("www.congdongjava.com");
	      System.out.println(address1);
	      
	      InetAddress address2 = InetAddress.getByName("180.70.116.176");
	      System.out.println(address2.getHostName());
	      
	      InetAddress[] address3 = InetAddress.getAllByName("www.congdongjava.com");
	      for (int i = 0; i < address3.length; i++) {

	          System.out.println(address3[i]);
	        } 
	    }
	    catch (UnknownHostException ex) {
	      System.out.println(ex);
	    }
	  }
}
Ý nghĩa các phương thức của nó thì chắc kô cần mình viết ra, các bạn có thể tra đc hoặc đọc qua cũng hĩu nghĩa của nó rồi.

Kêt quả chạy


hên quá là 4rum có 1 địa chĩ, mình thử làm với google hay mấy web nỗi tiếng thì có cã sãnh, nghịch cái này cũng vui :laugh:

Bài tiếp theo tìm hiểu về URL,

Cảm ơn vì đã đọc !
 

kenzso

New Member
23/5/10
267
5
0
Ðề: Tổng hợp JAVA Lập trình mạng

Rất hay. Mong chờ bài viết sau của bạn. :D
 

chuotfx

Member
4/4/10
365
25
18
Ðề: Tổng hợp JAVA Lập trình mạng

à, mình quên mất về 1 lớp trước khi tới URL là NetworkInterface . Nó cho mình biết các giao diện mạng của mình, hiểu môn nà là card mạng nhưng ở đây là ảo hết, cách dùng cũng tương tự như trên.

Lớp này thì dùng để lấy thông tin cần thiết mà thui.

Demo nho nhỏ :

PHP:
package TH_MANG;

import java.net.*;
import java.util.*;
public class InterfaceLister {

    public static void main(String[] args) throws Exception {
    	
      Enumeration interfaces = NetworkInterface.getNetworkInterfaces();
      while (interfaces.hasMoreElements( )) {
        NetworkInterface ni = (NetworkInterface) interfaces.nextElement( );
        System.out.println(ni);               
      }  
      
    }
}
Các bạn xem javadoc có thể thấy các phương thức khác tương tự IPAddress nên mình kô nêu ra. Với code trên thì khi NetworkInterface.getNetworkInterfaces() thì nó trả về 1 kiểu liệt kê ( Emun ) .

Mình kô đưa kết quả chạy lên vì máy mình quá nhiều chương trinh và nhiều thứ kết nối quá, :D

nhưng với 1 máy tính thì tí nhất cũng có đc 1 đến 3 cái :D

thui đi ngủ, bửa sau post tiếp