Tải bản đầy đủ (.doc) (31 trang)

hướng dẫn cài đặt và cấu hình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (645.26 KB, 31 trang )

Bài thực tập môn Lập trình java nhóm 3

GIỚI THIỆU
Trong quá trình học tập,tiếp thu kiến thức môn lập trình java tại trường Đại
học KTKTCN. Dưới sự dẫn dắt và gướng dẫn của thầy Vũ Đình Thắng. Tập thế sinh
viên nhóm 3 đã soạn ra tài liệu này. Sau đây là nội dung :
- Phần I: Giới thiệu
- Phần II: Nội dung
+ Chương 1: Hướng dẫn cài đặt và cấu hình máy ảo java
+ Chương 2: Lý thuyết
+ Chương 3: Bài tập cơ sở
+ Chương 4: Bài tập mạng
- Phần III: Tài liệu tham khảo
Tài liệu giúp người đọc có thể tự cài đặt và vận hành Jcreator .Trang bị cho người
đọc kiến thức về mạng Lan, các thiết bị mạng như SWITCH, Card mạng, Bridge,
Repeater, Router. Đặc biệt tài liệu sẽ giúp người đọc hiêu thêm về bộ môn lập trình
mạng bằng java. Cuối cùng là 2 bài điển hình về lập trình java.
1
Bài thực tập môn Lập trình java nhóm 3
Mục lục
Phần I : Giới thiệu 1
Phần II: Nội dung 4
Chương 1. Hướng dẫn cài đặt và cấu hình 4
1.1. Cài đặt JDK 4
1.2 .Cài đặt Jcreator 11
Chương 2. Lý thuyết 13
2.1. Mạng căn bản 13
2.1.1. Tìm hiểu về mô hình LAN 13
2.1.2. Giới thiệu về thiết bị mạng 14
2.1.2.1. HUB 14
2.1.2.2. SWITCH 14


2.1.2.3. ROUTER 15
2.1.2.4. NETWORK INTERFACE CARD 17
2.1.2.5. BRIDGE 18
2.1.2.6. REPEATOR 18
2.2. Lập trình Java trên mạng 19
2.2.1. Các khái niệm 19
2.2.2. Tìm hiểu các dịch vụ và các lớp của gói java.net 20
2.2.2.1. Các dịch vụ 20
2.2.2.2. Lớp InetAddress 21
2.2.2.3. Lớp Socket 21
2.2.2.4. Lớp ServerSocket 21
2.2.2.5. Lớp URL 21
2.3. Lớp DatagramSocket và DatagramPackage 22
2.3.1. Lớp DatagramSocket 22
2.3.2. Lớp DatagramPackage 23
Chương 3. Bài tập cơ sở 24
3.1. Đề tài 24
3.2. Đặt vấn đề 24
3.3. Hướng giải quyết 24
3.4. Code 24
3.5. Chạy thử 25
Chương 4. Bài tập mạng 27
4.1. Đề tài 27
4.2. Đặt vấn đề 27
4.3. Hướng giải quyết 27
4.4. Code 27
4.6. Chạy thử 29
Phần III : Tài liệu tham khảo 31
Nội dung
2

Bài thực tập môn Lập trình java nhóm 3
Chương 1: Hướng dẫn cài đặt và cấu hình
1.1 Hướng dẫn cài đặt JDK + Jcreator
1. Các Software cần thiết.(File cài đặt trong thư mục setup của CD)
2. Cài đặt JDK.
Thực thi tập tin j2sdk-1_4_0-win và thực hiện các bước Next.
3
Bài thực tập môn Lập trình java nhóm 3
Thực hiện các thao tác Next đến khi chọn Finish.
Kiểm tra lại kết quả cài đặt phải có đầy đủ các thư mục như sau:
4
Bài thực tập môn Lập trình java nhóm 3
 Cài đặt JDK 1.4 và JRE 1.4 thành công.
3. Cấu hình hệ thống.
Cấu hình sao cho hệ thống nhận thấy thư viện JDK.
Bước 1: Nhấp phải vào My Computer  Chọn Properties
Bước 2: Chọn Tab Advanced  Environment Variables.
5
Bài thực tập môn Lập trình java nhóm 3
Bước 3: Thiết lập 2 thông số cho User variables for Administrator.
Chọn New:
6
Bài thực tập môn Lập trình java nhóm 3
4. Chạy thử 1 chương trình đơn giản.
Bước 1: Mở Notepad gõ chương trình sau và lưu trữ với tên wellcome.java
Bước 2: vào Start  Run
7
Bài thực tập môn Lập trình java nhóm 3
Chuyển đổi vào thư mục lưu trữ tập tin và gõ javac wellcome.java như hình sau
(Nếu không báo lỗi xem như chương trình dịch hoàn tất).

Kiểm tra lại nội dung thư mục:
Thực thi chương trình:
8
Bài thực tập môn Lập trình java nhóm 3
 Chạy chương trình thành công.
9
Bài thực tập môn Lập trình java nhóm 3
1.2 Cài đặt Jcreator
1. Phần mềm
- Thực thi tập tin setup.exe.
- Thực hiện lặp đi lặp lại thao tác chọn nút Next cho đến khi gặp Finish.
2. Cấu hình Jcreator.
- Thực thi lần đầu tiên JCreator sẽ mở giao diện như sau:
- Chọn Next.
- Click chọn nút Browse. Để chọn đến thư mục chứa JDK.
10
Bài thực tập môn Lập trình java nhóm 3
- Chọn Next
- Cấu hình đến tài liệu tra cứu của JDK 1.4.
11
Bài thực tập môn Lập trình java nhóm 3
Chương 2: Lý thuyết
2.1- Mạng căn bản
Tìm hiểu về mô hình mạng LAN ( Local Area Network – viết tắt là
LAN)
LAN là một hệ thống mạng dùng để kết nối các máy tính trong một phạm vi nhỏ
(nhà ở, phòng làm việc, trường học, …). Các máy tính trong mạng LAN có thể chia
sẻ tài nguyên với nhau, mà điển hình là chia sẻ tập tin, máy in, máy quét và một số
thiết bị khác.
Một mạng LAN tối thiểu cần có máy chủ (server), các thiết bị ghép nối (Repeater,

Hub, Switch, Bridge), máy tính con (client), card mạng (Network Interface Card –
NIC) và dây cáp (cable) để kết nối các máy tính lại với nhau. Trong thời đại của hệ
điều hành MS-DOS, máy chủ mạng LAN thường sử dụng phần mềm Novell
NetWare, tuy nhiên điều này đã trở nên lỗi thời hơn sau khi Windows NT và
Windows for Workgroups xuất hiện. Ngày nay hầu hết máy chủ sử dụng hệ điều hành
Windows, và tốc độ mạng LAN có thể lên đến 10 Mbps, 100 Mbps hay thậm chí là
1 Gbps.
Một hình thức khác của LAN là WAN (Wide Area Network). Có nghĩa là mạng diện
rộng. Dùng để nối các LAN lại với nhau (thông qua router).
Một hình thức khác nữa của mạng LAN, mới xuất hiện trong những năm gần đây là
WLAN (Wireless LAN) – mạng LAN không dây.
.
Đặc trưng địa lý:
Mạng cục bộ thường được cài đặt trong một phạm vi địa lý tương đối nhỏ,
như trong một tòa nhà, một khu đại học, một căn cức quân sự….với đường kính
của mạng (tức khoảng cách giữa hai trạm xa nhất) có thể là từ vài chục mét tới vài
chục ki-lô-met trong thời đại công nghệ hiện nay. Giới hạn trên của đại lượng này
rõ rằng là một giá trị có ý nghĩa tương đối. Do đó không thể chỉ lấy đặc trừng địa
lý để phân biệt LAN với các loại mạng khác.
Đặc trưng tốc độ truyền :
Mạng cục bộ có tốc độ truyền thường cao hơn so với mạng diện rộng. Với
công nghệ mạng hiện nay, tốc độ truyền của mạng cục bộ có thể đạt tới 100 mb/s
Đặc trưng độ tin cậy :
Tỷ suất lỗi (error rate) trên mạng cục bộ là thấp hơn nhiều so với mạng diện
rộng ( như mạng điện thoại) .
Đặc trưng quản lý:
Mạng cục bộ thường là sở hữu riêng của một tổ chức nào đó (Trường học,
doanh nghiệp…) do vậy việc quản lý khai thác mạng hoàn toàn tập trung, thống
nhất.
Dĩ nhiên với sự phát triển nhanh chóng của công nghệ mạng, các đặc trưng

nói trên cũng chỉ mang tính tương đối. Sự phân biệt giữa mạng cục bộ và mạng
diện rộng sẽ ngày càng “mờ” dần.
12
Bài thực tập môn Lập trình java nhóm 3
2.1.2 Giới thiệu về các thiết bị mạng ( SWITCH, Card mạng, Bridge,
Repeator, Router)
Ngày nay, hầu hết các router đều là thiết bị kết hợp nhiều chức năng, và thậm
chí nó còn đảm nhận cả chức năng của switch và hub. Đôi khi router, switch và hub
được kết hợp trong cùng một thiết bị, và đối với những ai mới làm quen với mạng thì
rất dễ nhầm lẫn giữa chức năng của các thiết bị này.
2.1.2.1 HUB :
Hub được coi là một Repeater có nhiều cổng. Một
Hub có từ 4 đến 24 cổng và có thể còn nhiều hơn.
Trong phần lớn các trường hợp, Hub được sử dụng
trong các mạng 10BASE-T hay 100BASE-T. Khi cấu
hình mạng là hình sao (Star topology), Hub đóng vai
trò là trung tâm của mạng. Với một Hub, khi thông
tin vào từ một cổng và sẽ được đưa đến tất cả các
cổng khác.
Hub có 2 loại là Active Hub và Smart Hub. Active Hub là loại Hub được dùng phổ
biến, cần được cấp nguồn khi hoạt động, được sử dụng để khuếch đại tín hiệu đến và
cho tín hiệu ra những cổng còn lại, đảm bảo mức tín hiệu cần thiết. Smart Hub
(Intelligent Hub) có chức năng tương tự như Active Hub, nhưng có tích hợp thêm
chip có khả năng tự động dò lỗi - rất hữu ích trong trường hợp dò tìm và phát hiện lỗi
trong mạng.
2.1.2.2 Switch:
Switch đôi khi được mô tả như là một Bridge có
nhiều cổng. Trong khi một Bridge chỉ có 2 cổng để
liên kết được 2 segment mạng với nhau, thì Switch lại
có khả năng kết nối được nhiều segment lại với nhau

tuỳ thuộc vào số cổng (port) trên Switch. Cũng giống
như Bridge, Switch cũng "học" thông tin của mạng
thông qua các gói tin (packet) mà nó nhận được từ
các máy trong mạng. Switch sử dụng các thông tin
này để xây dựng lên bảng Switch, bảng này cung cấp
thông tin giúp các gói thông tin đến đúng địa chỉ.
Ngày nay, trong các giao tiếp dữ liệu, Switch thường có 2 chức năng chính là chuyển
các khung dữ liệu từ nguồn đến đích, và xây dựng các bảng Switch. Switch hoạt động
ở tốc độ cao hơn nhiều so với Repeater và có thể cung cấp nhiều chức năng hơn như
khả năng tạo mạng LAN ảo (VLAN).
13
Bài thực tập môn Lập trình java nhóm 3
2.1.2.3 Router
Còn router thì khác hoàn toàn so với hai thiết bị trên. Trong khi hub hoặc
switch liên quan tới việc truyền khung dữ liệu thì chức năng chính của router là định
tuyến các gói tin trên mạng cho tới khi chúng đến đích cuối cùng. Một trong những
đặc tính năng quan trọng của một gói tin là nó không chỉ chứa dữ liệu mà còn chứa
địa chỉ đích đến.

Router là thiết bị mạng lớp 3 của mô hình OSI (Network Layer). Router kết nối
hai hay nhiều mạng IP với nhau. Các máy tính trên mạng phải “nhận thức” được sự
tham gia của một router, nhưng đối với các mạng IP thì một trong những quy tắc của
IP là mọi máy tính kết nối mạng đều có thể giao tiếp được với router.
Ưu điểm của Router: Về mặt vật lý, Router có thể kết nối với các loại mạng
khác lại với nhau, từ những Ethernet cục bộ tốc độ cao cho đến đường dây điện thoại
đường dài có tốc độ chậm. Nhược điểm của Router: Router chậm hơn Bridge vì
chúng đòi hỏi nhiều tính toán hơn để tìm ra cách dẫn đường cho các gói tin, đặc biệt
khi các mạng kết nối với nhau không cùng tốc độ. Một mạng hoạt động nhanh có thể
phát các gói tin nhanh hơn nhiều so với một mạng chậm và có thể gây ra sự nghẽn
mạng. Do đó, Router có thể yêu cầu máy tính gửi các gói tin đến chậm hơn. Một vấn

đề khác là các Router có đặc điểm chuyên biệt theo giao thức - tức là, cách một máy
tính kết nối mạng giao tiếp với một router IP thì sẽ khác biệt với cách nó giao tiếp với
một router Novell hay DECnet. Hiện nay vấn đề này được giải quyết bởi một mạng
biết đường dẫn của mọi loại mạng được biết đến. Tất cả các router thương mại đều có
thể xử lý nhiều loại giao thức, thường với chi phí phụ thêm cho mỗi giao thức.
Router thường được kết nối với ít nhất hai mạng, thông thường là hai mạng LAN
hoặc WAN, hoặc một LAN và mạng của ISP nào đó. Router được đặt tại gateway,
nơi kết nối hai hoặc nhiều mạng khác nhau. Nhờ sử dụng các tiêu đề (header) và bảng
chuyển tiếp (forwarding table), router có thể quyết định nên sử dụng đường đi nào là
tốt nhất để chuyển tiếp các gói tin. Router sử dụng giao thức ICMP để giao tiếp với
các router khác và giúp cấu hình tuyến tốt nhất giữa bất cứ hai host nào.
14
Bài thực tập môn Lập trình java nhóm 3
Ngày nay, có rất nhiều các dịch vụ được gắn với các router băng rộng. Thông
thường, một router bao gồm 4-8 cổng Ethernet switch (hoặc hub) và một bộ chuyển
đổi địa chỉ mạng - NAT (Network Address Translator). Ngoài ra, router thường gồm
một máy chủ DHCP (Dynamic Host Configuration Protocol), máy chủ proxy DNS
(Domain Name Service), và phần cứng tường lửa để bảo vệ mạng LAN trước các
xâm nhập trái phép từ mạng Internet.
Tất cả các router đều có cổng WAN để kết nối với đường DSL hoặc modem
cáp &endash; dành cho dịch vụ Internet băng rộng, và switch tích hợp để tạo mạng
LAN được dễ dàng hơn. Tính năng này cho phép tất cả các PC trong mạng LAN có
thể truy cập Internet và sử dụng các dịch vụ chia sẻ file và máy in.
Một số Router chỉ có một cổng WAN và một cổng LAN, được thiết kế cho
việc kết nối một hub/switch LAN hiện hành với mạng WAN. Các switch và hub
Ethernet có thể kết nối với một router để mở rộng mạng LAN. Tuỳ thuộc vào khả
năng (nhiều cổng) của mỗi router, switch hoặc hub, mà kết nối giữa các router,
switche/hub có thể cần tới cáp nối thẳng hoặc nối vòng. Một số router thậm chí có cả
cổng USB và nhiều điểm truy cập không dây tích hợp.
Một số Router cao cấp hoặc dành cho doanh nghiệp còn được tích hợp cổng

serial &endash; giúp kết nối với modem quay số ngoài, rất hữu ích trong trường hợp
dự phòng đường kết nối băng rộng chính trục trặc, và tích hợp máy chủ máy in mạng
LAN và cổng máy in.
Ngoài tính năng bảo vệ được NAT cung cấp, rất nhiều Router còn có phần
cứng tường lửa tích hợp sẵn, có thể cấu hình theo yêu cầu của người dùng. Tường lửa
này có thể cấu hình từ mức đơn giản tới phức tạp. Ngoài những khả năng thường thấy
trên các router hiện đại, tường lửa còn cho phép cấu hình cổng TCP/UDP dành cho
game, dịch vụ chat, và nhiều tính năng khác.
Và như vậy, có thể nói một cách ngắn gọn là: hub được gắn cùng với một
thành phần mạng Ethernet; switch có thể kết nối hiệu quả nhiều thành phần Ethernet
với nhau; và Router có thể đảm nhận tất cả các chức năng này, cộng thêm việc định
tuyến các gói TCP/IP giữa các mạng LAN hoặc WAN, và tất nhiên còn nhiều chức
năng khác nữa.
Các mạng khác nhau chúng ta không thể truy cập lẫn nhau, do đó người ta đã
đưa ra khái niệm về Router qua đó người ta có thể truy cập thoải mái giữa các mạng
khác nhau hay nói cách khác Router dùng để nối các mạng lại với nhau.
Router có 2 dạng đó router cứng và router mềm:
- Router cứng: đó là một thiết bị phần cứng mà nhà sản xuất đã tích hợp những tính
năng cần thiết mà khi sử dụng chúng ta cần phải Congif chúng để nối các mạng lại
với nhau, điển hình cho Router dạng này là nhà sản xuất Cisco. Để cấu hình các
Router của Cisco chúng ta phải tìm hiểu các lớp học về CCNA, CCNP….
15
Bài thực tập môn Lập trình java nhóm 3
- Router mềm: thay vì phải mua thêm thiết bị phần cứng như trên người ta lại dùng
một phần mềm trên máy có tính năng tương tự Router cứng, điển hình cho Router
dạng này là Microsoft. Vì chúng ta đang tìm hiểu các tính năng của Microsoft nên
trong phần này tôi chỉ đề cập đến Router mềm mà thôi
2.1.2.4 Network Interface Card
Cạc mạng (network card), hay cạc giao tiếp mạng (Network Interface Card), là
một bản mạch cung cấp khả năng truyền thông mạng cho một máy tính. Nó còn được

gọi là bộ thích nghi LAN (LAN adapter), được cắm trong một khe (slot) của bản
mạch chính và cung cấp một giao tiếp kết nối đến môi trường mạng. Chủng loại cạc
mạng phải phù hợp với môi trường truyền và giao thức được sử dụng trên mạng cục
bộ.

Cạc mạng là thiết bị chịu trách nhiệm:
* Chuyển đổi các tín hiệu máy tính ra các tín hiệu trên phương tiện truyền dẫn và
ngược lại.
* Gửi/nhận và kiểm soát luồng dữ liệu được truyền.
Các thành phần trong card mạng
* I/O Address: Địa chỉ bộ nhớ chính của máy tính, được dùng để trao đổi dữ liệu giữa
máy tính với thiết bị (cạc mạng)
* Memory Address: Địa chỉ bộ nhớ chính của máy tính, là nơi bắt đầu vùng đệm dành
cho các xử lí của cạc mạng
* DMA Channel: Cho phép thiết bị (cạc mạng) làm việc trực tiếp với bộ nhớ máy tính
mà không cần thông qua CPU
* Boot PROM: Cho phép khởi động hệ thống và kết nối vào mạng
* MAC Address: Địa chỉ định danh duy nhất được IEEE cấp cho mỗi cạc mạng
* Đầu nối BNC: Nối cạc mạng với cáp qua đầu nối chữ T (10BASE2)
* Đầu nối RJ-45: Nối cạc mạng với cáp qua đầu nối RJ-45 (10BASE-T/100BASE-T)
* Đầu nối AUI: Nối cạc mạng với cáp (10BASE5)
* Khe cắm mở rộng: nơi cho phép gắn cạc mạng vào máy tính, có nhiều chuẩn: ISA,
EISA, PCI, MCA,
16
Bài thực tập môn Lập trình java nhóm 3
* IRQ (Interrupt Request): Chỉ số ngắt. Mỗi thiết bị trên máy tính, kể cả cạc mạng,
đều được ấn định một chỉ số ngắt duy nhất để yêu cầu CPU phục vụ
Ví dụ:
IRQ=0: system timer
IRQ=4: COM1 và COM3

IRQ=10: chưa ấn định
2.1.2.5 Bridge
Bridge
Bridge là thiết bị mạng thuộc lớp 2 của mô hình OSI (Data Link Layer).
Bridge được sử dụng để ghép nối 2 mạng để tạo thành một mạng lớn duy nhất.
Bridge được sử dụng phổ biến để làm cầu nối giữa hai mạng Ethernet. Bridge
quan sát các gói tin (packet) trên mọi mạng. Khi thấy một gói tin từ một máy
tính thuộc mạng này chuyển tới một máy tính trên mạng khác, Bridge sẽ sao
chép và gửi gói tin này tới mạng đích.
Ưu điểm của Bridge là hoạt động trong suốt, các máy tính thuộc các mạng
khác nhau vẫn có thể gửi các thông tin với nhau đơn giản mà không cần biết có sự
"can thiệp" của Bridge. Một Bridge có thể xử lý được nhiều lưu thông trên mạng như
Novell, Banyan cũng như là địa chỉ IP cùng một lúc. Nhược điểm của Bridge là chỉ
kết nối những mạng cùng loại và sử dụng Bridge cho những mạng hoạt động nhanh
sẽ khó khăn nếu chúng không nằm gần nhau về mặt vật lý.
2.1.2.6 Repeater
17
Bài thực tập môn Lập trình java nhóm 3
Trong một mạng LAN, giới hạn của cáp
mạng là 100m (cho loại cáp mạng CAT 5 UTP – là
cáp được dùng phổ biến nhất), bởi tín hiệu bị suy hao
trên đường truyền nên không thể đi xa hơn. Vì vậy,
để có thể kết nối các thiết bị ở xa hơn, mạng cần các
thiết bị để khuếch đại và định thời lại tín hiệu, giúp
tín hiệu có thể truyền dẫn đi xa hơn giới hạn này.
Repeater là một thiết bị ở lớp 1 (Physical Layer) trong mô hình OSI. Repeater
có vai trò khuếch đại tín hiệu vật lý ở đầu vào và cung cấp năng lượng cho tín hiệu ở
đầu ra để có thể đến được những chặng đường tiếp theo trong mạng. Điện tín, điện
thoại, truyền thông tin qua sợi quang… và các nhu cầu truyền tín hiệu đi xa đều cần
sử dụng Repeater.

.
2.2- Lập trình java trên mạng
Mục này ta sẽ làm quen và tìm hiểu cách lập trình trên mạng bằng ngôn ngữ java.
Java cung cấp cho ta các lớp Socket, ServerSocket, DatagramSocket… đủ mạnh để
thiết kế bất kì ứng dụng nào theo mô hình khách/chủ ( client/server). Sau đó chúng ta
sẽ làm một ví dụ về lập trình mạng bằng java sử dụng UDP. Trước tiên ta tìm về một
số khái niệm trong lập trình mạng.
2.2.1 Các khái niệm.
Liên lạc trên Internet
1.1.2 Họ giao thức TCP/IP ( Transmission Control Protocol/ Internet Protocol)
Để hai hay nhiều máy tính nói chuyện được với nhau, chúng phải dùng chung
một ngôn ngữ chung. Trên Internet ngày nay ngôn ngữ chung đều dựa theo quy ước
hay giao thức cốt lõi là TCP/IP. Giao thức này mỗi máy sẽ được đặt cho một số riêng
gọi là địa chỉ IP(IP Address)- địa chỉ này như 1 số điện thoại và nó là duy nhất, không
được máy nào trùng nhau( trên phạm vi thế giới). Địa chỉ này được tổ chức quốc tế
InterNic (Internet Network Information Center) cung cấp khi một máy tính tham gia
vào hệ thống Internet toàn cầu.
Địa chỉ IP và tên riêng của máy.
Hai khái niệm này có thể coi là tương đồng với nhau. Sự khác biệt là địa chỉ
IP được đánh dấu bằng các chữ số, còn tên riêng của máy thì không bắt buộc điều
này. Việc sử dụng các chữ số đối với địa chỉ IP chẳng qua là để tiện cho máy tính xử
lý. Còn tên riêng của máy thì để người sử dụng dễ nhớ, và dễ gọi tên hơn.
Máy chủ :
Tên của máy chủ còn được gọi là tên vùng (Domain name), chúng được đặt
teentheo thứ tự phân cấp của tên lãnh thổ, vùng, tổ chức, hay tên cá nhân. Mỗi nhóm
phân cấp cách nhau bằng một dấu (.).
Cách đọc tên vùng của một máy chủ ta đi từ trái qua phải :
Vd:
Java.sum.com
18

Bài thực tập môn Lập trình java nhóm 3
Trong đó :
- Java : tên máy tính
- Sun : tên tổ chức/ công ty
- com : tên vùng
Lưu ý: Một máy cũng có thể có nhiều địa chỉ IP nếu có nhiều giao tiếp kết nối với các
máy tính khác thông qua mạng Internet.
Cách chuyển dữ liệu trên mạng, giao thức TCP và UDP
Cách chuyển dữ liệu đảm bào dựa vào giao thức TCP (Transmission Control
Protocol)
Cách chuyển dữ liệu không đảm bảo dựa vào giao thức UDP (User Datagram
Protocol)
• Giao thức TCP: gửi từng gói dữ liệu đi, nơi nhận theo giao thức này phải
có trách nhiệm thông báo và kiểm tra xem dữ liệu đã đến đủ hay chưa, có
lỗi hay không có lỗi. Trước khi chuyển dữ liệu thì luôn có sự kết nối giữa
máy gửi và máy nhận. Giao thức này chiếm một số tài nguyên của hệ
thống và cách lập trình cho giao thức này hơi phức tạp. Được dùng chủ
yếu trong các dịch vụ như truyền tập tin, dịch vụ trực tuyến Internet đòi
hỏi sự tin cậy cao.
• Giao thức UDP: Ngược lại với giao thức TCP, giao thức UDP thực hiện
việc gửi dữ liệu mà không có sự kết nối trước nào giữa nơi gửi và ở nơi
nhận, dữ liệu gửi đi mặc định rằng máy tính ở đầu nhận luôn ở trạng thái
sẵn sàng để tiếp đón dữ liệu gửi đến. Nếu có lỗi trong quá trình truyền hay
không nhận được đầy đủ thì cũng không có thông tin phản hồi gì lại cho
nơi gửi. Giao thức này không đòi hỏi tài nguyên của hệ thống và thường
được dùng trong những ứng dụng không đòi hỏi sự chính xác cao như:
dịch vụ thông báo giờ, tỉ giá hay các dịch vụ gửi tin….
Kết nối với Internet
Các dịch vụ của nhà cung cấp là ISP ( như FPT, Cnet… ) giúp ta có thể kết nối với
Internet bằng đường truyền điện thoại thông qua moden.

2.2.2 Tìm hiểu về các dịch vụ, các lớp cần thiết của gói java.net.
2.2.2.1 Dịch vụ
- Dịch vụ từ phía máy chủ: Khi kết nối vào máy chủ ta có thể yêu cầu máy chủ
nhiều dịch vụ khác nhau, như dịch vụ truy tìm và đọc các trang Web trên Internet,
dịch vụ gửi nhận E-Mail, dịch vụ dò tìm hệ thống tên vùng DNS… Mỗi dịch vụ đều
có cách gửi nhận dữ liệu theo quy ước riêng . TCP và UDP chỉ chịu trách nhiệm đưa
dữ liệu từ một máy tính này tới máy tính khác, còn dữ liệu đó sẽ được gửi cho dịch vụ
nào thì phải thông qua một quy định nữa là cổng (hay port). Mỗi chương trình dịch vụ
sẽ sử dụng một cổng khác nhau để truy xuất thông tin. Cổng là một số nguyên dương
có giá trị từ 1đến 16383.
- Máy chủ (Server) sẽ quy định cổng được sử dụng cho mỗi loại dịch vụ.
Thông tin máy khách (client) và máy chủ (server) phải sử dụng cổng tương ứng nhau
thì mới trao đổi được với nhau. Tuy nhiên, hầu hết các chương trình dịch vụ nổi tiếng
hiện nay đều có quy định chuẩn cổng dành riêng cho dịch mình như ;
19
Bài thực tập môn Lập trình java nhóm 3
Dịch vụ Cổng (Port)
FTP 21
HTTP 80
Telnet 23
Finger 79
SMTP 25
- Các dịch vụ khác hỗ trợ trên Internet như : Email, nhóm tin (NewsGroup), chuyển
tập tin( File Tranfe), đăng nhập từ xa ( Remote login)…
Các lớp cần thiết của gói thư viện JAVA.NET
2.2.2.1 Lớp InetAddress
Java xây dựng lớp InetAddress dành cho việc quản lý địa chỉ theo
tên và theo số.
Lớp InetAddress cung cấp các phương thức static thông dụng nhất dùng để
chuyển đổi và truy xuất địa chỉ IP ( không có phương thức khởi dựng cho lớp này)

Các phương thức thông dụng của lớp :
- public static InetAddress getLocalHost() throws
UnknownHostExceptiongetByName
Trả về dối tượng InetAddress là địa chỉ của máy cục bộ ( localhost)
- public static InetAddress getByName(String host) throws
UnknowsHostException
Phương thức này nhận địa chỉ của một máy bằng kiểu chuỗi và trả về đối
tượng InetAddress thay mặt cho địa chỉ máy này.
- public static InetAddress[] getAllByName(String host) throws
UnknowsHostException
Phương thức này nhận địa chỉ của một máy bằng kiểu chuỗi và trả về tất cả
các đối tượng InetAddress thay mặt cho địa chỉ máy này.
- public byte[] getAddress()
Trả về địa chỉ IP của đối tượng InetAddress dưới dạng một dãy các byte, Ví trí
cao nhất nằm ở byte 0.
- public String []getHostAddress()
Trả về địa chỉ IP của đối tượng InetAddress dưới dạng một chuỗi được định
dạng phân làm 4 nhóm %d%d%d%d ( ví dụ : “127.0.0.1”).
2.2.2.3 Lớp Socket
Lớp Socket dùng tạo kết nối từ phía máy khách với máy chủ thường được khởi
dựng bằng các phương thức :
- public Socket(String host,int port) throws UnknownHostException,
IOException
Tạo ra một Socket kết nối theo địa chỉ host và cổng port.
- public Socket (InetAddress address, int port) throws IOException
Tạo ra một Socket kết nối từ địa chỉ là đối tượng InetAddress và số cổng port.
20
Bài thực tập môn Lập trình java nhóm 3
- public Socket (String host,int port, boolean stream) throws IOException
Tạo ra một socket kết nối theo địa chỉ host và số cổng port, tham số stream cuối

cùng để quy định kết nối theo TCP(stream=true) hay UDP(stream = false). Tuy
nhiên nếu áp dụng để tạo Socket cho giao thức UDP nên sử dụng lớp thay thế là
DatagramSocket.
Các phương thức khác hỗ trợ cho lớp Socket từ phía máy khách gồm :
- InputStream getInputStream() throws IOException
Lấy về luồng nhập để máy khách có thể đọc dữ liệu trả về từ phía máy chủ.
- OutupStream getOutputStream() throws IOException
Lấy về luồng xuất để máy khách có thể ghi dữ liệu gửi đến máy chủ
- InetAddress getInetAddress()
Lấy địa chỉ kết nối Socket của máy chủ
- int getPort()
Lấy về số coognr dùng kết nối của máy chủ
- synchronized void close() throws IOException
Cắt đứt kết nối với máy chủ
2.2.2.4 Lớp ServerSocket
Lớp ServerSocket dùng tạo kết nối từ phía máy chủ với các máy khách. Đối tượng
ServerSocket được tạo ra trên máy chủ và lắng nghe những kết nối từ phía máy khách
gửi đến theo một số cổng định trước. Đối tượng ServerSocket được khởi dựng từ
phương thức sau:
- public ServerSocket (int port) throws Exception
port là số hiệu cổng mà đối tượng ServerSocket phải lắng nghe để nhận biết
những kết nối từ phía máy khách gửi đến. Để chờ đợi kết nối từ các máy khác gửi
đến đối tượng ServerSocket thường nhờ tới phương thức sau:
- Socket accept() throws IOException
Phương thức này thực sự dừng lại chờ đợi cho đến khi nhận được thông tin kết
nối sẽ trả về đối tượng socket của máy khách nơi có yêu cầu nối vào máy chủ.
- Public void close() throws IOException
Cắt đứt mọi kết nối tới máy chủ.
2.2.2.5 Lớp URL
URL (Uniform Resource Locator) là địa chỉ định vì tài nguyên trên mạng, thường

một URL như đã đề cập bao gồm 3 phần : phần nghi thức (protocol), phần địa chỉ hay
tên máy chủ (host name) và phần chỉ định tên tập tin hay tài liệu muốn lấy từ máy chủ
về.
Java đóng gói tất cả những đặc điểm này vào một lớp URL. Đối tượng URL được
tạo ra bằng một trong những phương thức khởi dựng sau :
- public URL(String spec) throws MalfomedURLException
Tạo mọt đối tượng URL từ địa chỉ định là một chuỗi
- public URL(String protocol, String host, int port, String file) throws
MalformedURLException
21
Bài thực tập môn Lập trình java nhóm 3
Tạo một địa chỉ định vị tuyệt đối với đầy đủ các thành phần: nghi thức ( protocol),
máy chủ (server), đường dẫn (file) đến tập tin trên máy chủ ( bỏ qua thành phần
định cổng giao tiếp, nếu truy tìm trang web theo nghi thức http thì cổng mặc định
của chương trình Web server là 80)
Các phương thức hỗ trợ khác dùng cho lớp URL là :
- public final Object getContent() throws IOException
Lấy về nội dung mà kết nối theo địa chỉ URL có được
- String getFile()
Lấy về thành phần tên tập tin hay tài liệu nằm trong chuỗi địa chỉ URL
- String getHost()
Lấy tên máy chủ (thường là thành phần thứ hai của chuỗi URL)
- String getProtocol()
Lấy về tên giao thức (thành phần đầu tiên của chuỗi URL)
- String getPort()
Lấy về số hiệu cổng.
- String getRef()
Lấy về nội dung tham khảo thêm trong chuỗi URL ( được đặt sau dấu # của
chuỗi)
- Public final InputStream openStream() throws IOException

Mở một luồng nhập để đọc thông tin trả về từ máy chủ.
2.3 Lớp DatagramSocket và DatagramPackage
2.3.1 DatagramSocket
Lớp này được dừng để chuyển đi một gói dữ liệu (biểu diễn bằng dối tượng
DatagramPackage) theo phương thức UDP. Dữ liệu được gửi đi không đảm bảo được
nhận đầy đủ và có thể bị lỗi trên đường truyền ( cơ chế dùng lớp DatagramSocket
không an toàn bằng lớp Socket). Dưới đây là một số phương thức thường dùng của
lớp DatagramSocket:
- public DatagramSocket () throws SocketException
Phương thức khởi dựng để tạo kết nối UDP
- public DatagramSocket(int port) throws SocketException
Phương thức khởi dựng để tạo kết nối UDP với số hiệu cổng port
- public void synchronized send(DatagramPackage p) throws IOExcepion
Gửi gói dữ liệu đi.
- public void synchronized receive(DatagramePackage p) throws IOException
Nhận gói dữ liệu gửi về
- public void synchronized close()
Đóng kết nối
2.3.2 Lớp DatagramPackage
Lớp này được dùng cho mọi gói chứa dữ liệu gửi đi trên mạng theo kết nối
DatagramSocket. Một gói có thể chứa các thông tin như dữ liệu, chiều dài gói, các địa
chỉ IP và số cổng mà từ đó gói dữ liệu được gửi đi. Dưới đây là một số phương thức
hữu dụng của lớp DatagramPakage:
- public Datagrame(byte buf[],int len)
22
Bài thực tập môn Lập trình java nhóm 3
Phương thức khởi dựng tạo ra gói chứa dữ liệu chứa trong bộ đêm buff[] và chiều
dài gói dữ liệu là len
- public DatagramePackage(byte buf[], int len, InetAddress iadd,int port)
Phương thức khởi dựng tạo ra gói có dữ liệu chứ trong bộ đệm buff[] cùng với

chiều dài vùng đệm muốn lấy, địa chỉ máy đích và số hiệu cổng.
- public InetAddress getAddress()
Trả về địa chỉ chứ trong gói dữ liệu
- public byte[] getData()
Trả về dữ liệu thật sự chứa trong gói.
- public int getLength()
Trả về kích thước hay chiều dài gói dữ liệu
- public int getPort()
Trả về số hiệu cổng chứa trong gói dữ liệu.
Chương 3: Bài tập cơ sở
3.1 Đề tài :
Lập trình tạo Menu như sau và sau khi người sử dụng chọn một chức năng trong
Menu thì máy sẽ chạy chương trình tương ứng với chức năng đó.
***********************************************************
* MENU *
* 1. Tìm Max, Min của 4 số *
* 2. Tính tổng của mảng 1 chiều có n phần từ. *
* 3. Tính tổng các phần tử chẵn của ma trận. *
* 4. Thoát. *
***********************************************************
Mời bạn chọn một chức năng !
***
3.2 Đặt vấn đề:
Bài toán yêu cầu người lập trình có kiến thức cơ bản về Java. Bốn chức năng của
Menu là thể hiện của bốn bài toán cơ sở.
Ngoài ra, còn sử dụng câu lệnh điều khiển và rẽ nhánh để điều khiển chương
trình.
3.3 Hướng giải quyết:
Sử dụng lệnh switch() để cho người sử dụng chọn các chức năng của Soft.
Viết code các bài toán nhỏ tương ứng với từng chức năng của Menu, kiểm tra và

chạy thử, sau khi hoàn thành thì ghép chúng tương ứng với các giá trị Case của Menu.
Để tạo thuận tiện cho người sử dụng ta sử dụng thêm vòng lặp
for( ; ; ), đây là vòng lặp vô hạn và chỉ kết thúc khi người sử dụng chọn chức năng
thoát là ấn phím 4. Ngoài ra, bắt lỗi người sử dụng khi họ nhập phím chức năng là số
âm hoặc số lớn hơn 4 bằng cách mặc định giá trị Case.
3.4 Code bài toán :
import java.io.*;
import java.text.*;
class bai1{
public static void main (String args[])throws IOException,ParseException{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
System.out.println("************************************************");
23
Bài thực tập môn Lập trình java nhóm 3
System.out.println("* MENU *");
System.out.println("* 1- Tim Max, Min cua 4 so *");
System.out.println("* 2- Tinh tong cua mang 1 chieu co n phan tu *");
System.out.println("* 3- Tinh tong cac phan tu chan cua ma tran *");
System.out.println("* 4- Thoat *");
System.out.println("************************************************");
System.out.println();
System.out.print(" Moi ban chon mot chuc nang : ");
chon:
for(;;){
int t=Integer.parseInt(in.readLine());
System.out.flush();
switch(t){
case 1:{
System.out.println("Chuong trinh tim max, min cua 4 so !");
System.out.println("Moi ban nhap vao 4 so : ");

double a[]=new double [4];
for(int i=0;i<4;i++){
t=i+1;
System.out.print("So thu "+t+" :");
a[i]=Double.parseDouble(in.readLine());
System.out.flush(); }
System.out.print("4 so can tim max, min la : ");
for(int i =0;i<4;i++) System.out.print(a[i] +" ");
System.out.println();
double max=a[0]; double min=a[0];
for(int i=1;i<4;i++){
if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i]; }
System.out.println("Max = "+max);
System.out.print("Min = "+min);
System.out.println();
System.out.print("Moi ban chon chuc nang de tiep tuc :");
continue chon; }
case 2:{
System.out.println("Chuong trinh tinh tong cua mang 1 chieu co n phan tu !");
nhap:
for(;;){
System.out.print("Moi ban nhap n : ");
int n=Integer.parseInt(in.readLine());
System.out.flush();
if(n<=0 || n>100) {
System.out.println("Chu y : 0<n<=100 ! Moi ban nhap lai !");
continue nhap; }
else{
double a[]=new double[100];

24
Bài thực tập môn Lập trình java nhóm 3
System.out.println();
System.out.println("Moi ban nhap cac phan tu cua mang 1 chieu :");
for(int i=0;i<n;i++){
System.out.print("A["+i+"] : ");
a[i]=Double.parseDouble(in.readLine()); }
System.out.println();
double s=0;
for(int i=0;i<n;i++) s=s+a[i];
System.out.println("Tong cua mang : "+s);
break nhap; } }
System.out.println();
System.out.print("Moi ban chon chuc nang de tiep tuc :");
continue chon;}
case 3:{
System.out.println("Tinh tong cac phan tu chan cua ma tran !");
nhapmatran:
for(;;){
System.out.print("Moi ban nhap kich thuoc cua ma tran :");
int n=Integer.parseInt(in.readLine());
System.out.flush();
if(n<2) {
System.out.println("Kick thuoc ma tran sai !");
continue nhapmatran;
int a[][]=new int[n][n];
System.out.println();
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
System.out.print("A["+i+"]["+j+"]: ");

a[i][j]=Integer.parseInt(in.readLine()); }
//kiem tra phan tu chan va tinh tong.
int s=0; boolean le=false;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(a[i][j]%2==0) { s=s+a[i][j];
le=true;}
if(le==true) System.out.println("Tong cac phan tu chan cua ma tran : "+s);
else System.out.println("Ma tran khong co phan tu chan ! ");
break;}
System.out.println();
System.out.print("Moi ban chon chuc nang de tiep tuc :");
continue chon;}
case 4: break chon;
default: {System.out.print("Vao sai ! Moi ban chon lai chuc nang :");
continue chon;
}}}}}
3.5 Chạy thử :
25

×