Tìm hiểu sử dụng kỹ thuật lập trình socket xây dựng chương trình tư vấn chăm sóc sắc đẹp - Pdf 31

Mục Lục
LỜI MỞ ĐẦU..................................................................................2
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN............................3
I. GIỚI THIỆU CHUNG.................................................................4
1. Tổng quan về đề tài:....................................................................4
1.1. Giới thiệu đề tài :......................................................................4
1.2. Mục đích :..................................................................................4
LẬP TRÌNH SOCKET TRONG JAVA........................................5
II.1. Mô hình Client – Server..........................................................5
II.1.1. Khái niệm :............................................................................5
II.1.2 Nguyên lý................................................................................7
II.2. Socket :....................................................................................10
II.2.1 Khái niệm về Socket :..........................................................10
II.2.2. Đặc điểm và phân loại về Socket :.....................................11
II.2.3. Socket trong Java :.............................................................17
Các thao tác trên Socket :.............................................................17
1.Môi trường triển khai ................................................................19
2.Kết quả các chức năng của chương trình.................................19
IV. KẾT LUẬN..............................................................................24
1.Những kết quả đạt được ............................................................24
2.Những tồn tại ..............................................................................24
3.Hướng phát triển .......................................................................24

1


LỜI MỞ ĐẦU

Đối với mỗi chúng ta trong thế giới hiện đại, ứng dụng công nghệ thông tin
đã là 1 phần tất yếu. Do vậy, Công nghệ Thông tin hiện tại là 1 ngành khoa học rất
phát triển và cực kỳ quan trọng vì nó được ứng dụng cho hầu hết các ngành quan

………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………….
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………….
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………….
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………….
………………………………………………………………………………………
………………………………………………………………………………
Đà Nẵng.….tháng 12 năm 2013
GIÁO VIÊN
3


(ký tên)

I. GIỚI THIỆU CHUNG
1. Tổng quan về đề tài:

Mô hình Client – Server :

H1 : Mô hình Client/Server

H2 : Cách hoạt động của mô hình Client/Server

5


- Thuật ngữ Server được dùng cho những chương trình thi hành như một dịch vụ
trên toàn mạng. Các chương trình Server này chấp nhận tất cả các yêu cầu hợp lệ
đến từ mọi nơi trên mạng, sau đó nó thi hành dịch vụ và trả kết quả về máy yêu
cầu.
- Một chương trình được coi là Client khi nó gửi các yêu cầu tới máy có chương
trình Server và chờ đợi câu trả lời từ Server.
- Chương trình Server và Client nói chuyện với nhau bằng các thông điệp
(messages) thông qua một cổng truyền thông liên tác IPC (Interprocess
Communication). Để một chương trình Server và một chương trình Client có thể
giao tiếp được với nhau thì giữa chúng phải có một chuẩn để nói chuyện, chuẩn
này được gọi là giao thức.
- Nếu một chương trình Client nào đó muốn yêu cầu lấy thông tin từ Server thì nó
phải tuân theo giao thức mà Server đó đưa ra. Bản thân chúng ta khi cần xây dựng
một mô hình Client/Server cụ thể thì ta cũng có thể tự tạo ra một giao thức riêng
nhưng thường chúng ta chỉ làm được điều này ở tầng ứng dụng của mạng.
- Với sự phát triển mạng như hiện này thì có rất nhiều giao thức chuẩn trên mạng
ra đời nhằm đáp ứng nhu cầu phát triển này. Các giao thức chuẩn (ở tầng mạng và
vận chuyển) được sử dụng rộng rãi nhất hiện nay như: giao thức TCP/IP, giao thức
SNA của IBM, OSI, ISDN, X.25 hoặc giao thức LAN-to-LAN NetBIOS.
- Một máy tính chứa chương trình Server được coi là một máy chủ hay máy phục
vụ (Server) và máy chứa chương trình Client được coi là máy tớ (Client). Mô hình

gì. Với các chuẩn này thì các chương trình Server cho một dịch vụ nào đấy có thể
thi hành trên một hệ thống chia sẻ thời gian (timesharing system) với nhiều chương
7


trình và dịch vụ khác hoặc nó có thể chạy trên chính một máy tính các nhân bình
thường. Có thể có nhiều chương Server cùng làm một dịch vụ, chúng có thể nằm
trên nhiều máy tính hoặc một máy tính.
- Với mô hình trên chúng ta nhận thấy rằng mô hình Client/Server chỉ mang đặc
điểm của phần mềm không liên quan gì đến phần cứng mặc dù trên thực tế yêu cầu
cho một máy Server là cao hơn nhiều so với máy Client. Lý do là bởi vì máy
Server phải quản lý rất nhiều các yêu cầu từ các Clients khác nhau trên mạng.
- Ưu và nhược điểm chính Có thể nói rằng với mô hình Client/Server thì mọi thứ
dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa
(bao gồm các công việc như gửi và nhận file, tìm kiếm thông tin, ...) với nhiều dịch
vụ đa dạng mà mô hình cũ không thể làm được.
- Mô hình Client/Server cung cấp một nền tảng lý tưởng cho phép tích hợp các kỹ
thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin
địa lý (GIS) ... Một trong những vấn đề nảy sinh trong mô hình này đó là tính an
toàn và bảo mật thông tin trên mạng. Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu
vực khác nhau cho nên dễ dàng xảy ra hiện tượng thông tin truyền trên mạng bị lộ.
* Client:
Trong mô hình Client/Server, người ta còn định nghĩa cụ thể cho một máy
Client là một máy trạm mà chỉ được sử dụng bởi 1 người dùng với để muốn thể
hiện tính độc lập cho nó. Máy Client có thể sử dụng các hệ điều hành bình thường
như Win9x, DOS, OS/2... Bản thân mỗi một Client cũng đã được tích hợp nhiều
chức năng trên hệ điều hành mà nó chạy, nhưng khi được nối vào một mạng LAN,
WAN theo mô hình Client/Server thì nó còn có thể sử dụng thêm các chức năng do
hệ điều hành mạng (NOS) cung cấp với nhiều dịch vụ khác nhau (cụ thể là các
dịch vụ do các Server trên mạng này cung cấp), ví dụ như nó có thể yêu cầu lấy dữ


chức năng để hỗ trợ cho các hoạt động trên các máy Clients có hiệu quả hơn. Sự hỗ
trợ của các dịch vụ này có thể là toàn bộ hoặc chỉ một phần thông qua IPC. Để đảm
bảo tính an toàn trên mạng cho nên Server này còn có vai trò như là một nhà quản
lý toàn bộ quyền truy cập dữ liệu của các máy Clients, nói cách khác đó là vai trò
quản trị mạng. Có rất nhiều cách thức hiện nay nhằm quản trị có hiệu quả, một
trong những cách đang được sử dụng đó là dùng tên Login và mật khẩu .
II.2. Socket :
II.2.1 Khái niệm về Socket :

- Socket là một giao diện lập trình ứng dụng (API) mạng .
- Socket : “Cửa” nằm giữa process của ứng dụng và end-end-transport protocol
(TCP or UDP) .
- Thông qua giao diện này chúng ta có thể lập trình điều khiển việc truyền thông
giữa 2 máy với sử dụng giao thức mức thấp nhất là TCP /UDP , ….
- Socket là sự trừu tượng hoá ở mức cao , có thể tưởng tượng nó là thiết bị truyền
thông 2 chiều gửi – nhận dữ liệu giữa 2 máy tính với nhau .
- Hoặc : “Một socket là một điểm cuối của thông tin hai chiều liên kết giữa hai
chương trình đang chạy trên mạng. Những lớp socket được dùng để đại diện cho
kết nối giữa một chương trình client và một chương trình server. Trong Java gói
Java.net cung cấp hai lớp Socket và ServerSocket để thực hiện kết nối giữa client
và server. ”
- Thông thường thì server sẽ chạy trên một máy đặc biệt và có một socket giới hạn
trong một Port number đặc biệt.

10


- Phía client: client được biết hostname của máy mà server đang chạy và port
number mà server đang lắng nghe. Để tạo một yêu cầu kết nối client sẽ thử hẹn gặp

Thông điệp gửi đi phải kèm theo địa chỉ của người nhận
Thông điệp có thể gửi nhiều lần
Người gửi không chắc chắn là thông điệp có đến tay người nhận
Thông điệp gửi sau có thể đến đích trước thông điệp gửi trước đó .
Số hiệu cổng Socket :

Để thực hiện được các cuộc giao tiếp thì một trong hai quá trình phải công bố
cổng của socket mà mình sử dụng .
Mỗi cổng giao tiếp thể hiện một địa chỉ xác định trong hệ thống . Khi quá trình
được gán một số hiệu cổng , nó có thể nhận dữ liệu gửi đến cổng này từ các quá
trình khác .
Quá trình còn lại cũng yêu cầu tạo ra một socket
• Thiết kế giải thuật mô hình Client/Server :
Giải thuật cho chương trình Client :
-

Xác định địa chỉ Server
Tạo Socket
Gửi /nhận dữ liệu theo giao thức lớp ứng dụng đã thiết kế
Đóng Socket.
Giải thuật cho chương trình Client dùng TCP
Xác định địa chỉ Server
Tạo Socket
Kết nối đến Server
Gửi /nhận dữ liệu theo giao thức lớp ứng dụng đã thiết kế
Đóng Socket.
Giải thuật cho chương trình Server :
Chương trình Server có hai loại :
Lặp (iterative)
Đồng thời (concurrent)

lại trạng thái chờ , lắng nghe kết nối mới .
Công việc của một process mới bao gồm :
Nhận thông tin kết nối của Client
Giao tiếp với Client theo lớp ứng dụng đã thiết kế .
Đóng kết nối và kết thúc process con.
Mô hình một ứng dụng hoạt động theo giao thức TCP

hoặc

14



-

Các bước xây dựng ứng dụng :
Xây dựng chương trình Client – Các bước tổng quát :
Mở một Socket kết nối đến Server đã biết IP(hay tên miền) và số hiệu cổng .
Lấy Stream nhập và Stream xuất được gán với số hiệu cổng .
Trao đổi dữ liệu với Server dựa vào các Stream nhập và Stream xuất .
Tham khảo protocol của dịch vụ để định dạng đúng dữ liệu trao đổi với

Server .
- Đóng Socket trước khi kết thúc chương trình .
Xây dựng chương trình Server phục vụ tuần tự - Các bước tổng quát .
B1 – Tạo socket và gán số hiệu cổng cho Server .
B2 – Lắng nghe yêu cầu kết nối
B3 – Chấp nhận /từ chối yêu cầu kết nối của Client
15


Nối kết tới server có tên là Hostname và cổng là PortNumber .
Hostname : Địa chỉ IP hoặc tên logic theo dạng tên miền .
Portnumber : có giá trị từ 0 đến 65535 , thường thì ta dùng các giá trị lớn 1024 .
các cổng nhỏ hơn 1024 thường là các cổng dùng cho các dịch vụ trong window .
Các dịch vụ nổi tiếng . Ví dụ cổng 80 dùng cho http .
Ví dụ kết nối đến Webserver khoa CNTT : Socket s = new Socket
(“www.itf.edu.vn”,80).
17


Public InputStream getInputStream() : trả về Stream được nhập nó gắn với socket
nhờ đó mà có thể trao đổi dữ liệu với server . Ví dụ InputStream in = s
.getInputStream();
Xây dựng chương trình Server - Lớp java.net.socket
Hỗ trợ các phương thức cần thiết để xây dựng ứng dụng server sử dụng socket ở
chế độ có kết nối .
Public ServerSocket(int PortNumber);
Tạo một Socket với số hiệu cổng là PortNumber . Server tiếp đó lắng nghe các yêu
cầu kết nối từ phía Client dựa trên PortNumber.
Socket accept() : Server chấp nhận một yêu cầu kết nối từ phía Client , socket mới
được tạo ra hình thành nên kênh giao tiếp ảo giữa server và client .
Server lấy InputStream và OutputStream gán với socket để trao đổi với Client .

18


III. XÂY DỰNG CHƯƠNG TRÌNH
TÌM HIỂU VÀ SỬ DỤNG KỸ THUẬT LẬP TRÌNH SOCKET XÂY DỰNG
CHƯƠNG TRÌNH TƯ VẤN CHĂM SÓC SĂC ĐẸP
1. Môi trường triển khai

+ Giải đáp thắc mắc

23


IV. KẾT LUẬN
1. Những kết quả đạt được
− Qua quá trình thực hiện xong đồ án Lập trình mạng này tuy chúng em đã
rất cố gắng nhưng kiến thức , kinh nghiệm và thời gian hạn chế nên đồ án này của
chúng em không tránh khỏi những thiếu sót .
− Đồ án Lập trình mạng mục đích tổng hợp lại các kiến thức cơ bản về mạng
máy tính, các kiến thức về lập trình ứng dụng , nắm được các cú pháp trong ngôn
ngữ lập trình , tìm hiểu công nghệ .
2. Những tồn tại
− Chương trình còn ít chức năng , các chức chưa được mở rộng .
− Khả năng ứng dụng còn hạn chế .
3. Hướng phát triển
− Xây dựng chương trình đồ sộ với nhiều chức năng , được mở rộng về nội
dung và hình thức , chạy ổn định và thuận tiện hơn ở việc tìm kiếm thông tin .
− Xây dựng kho dữ liệu thông tin đa dạng phù hợp với mọi lứa tuổi, đối
tượng .

24


Tài liệu tham khảo
[1] Trần Tiến Dũng, Giáo trình Lý thuyết và bài tập Java,1999
[2] H. M. Deitel, P. J. Deitel, Java How to Program 6th Edition, 2004
[3] Core Java
[4] Hoàng Đức Hải, Nguyễn Phương Lan, Java Tập 2, 2004


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status