XÂY DỰNG GAME CỜ CARO CÓ CHAT TRONG MẠNG LAN BẰNG JAVA THEO HƯỚNG CẤU PHẦN CLIENTSERVER LỜI NÓI ĐẦU Ngày nay, do nhu cầu đời sống của con người ngày càng được nâng cao, trong đó nhu cầu vui chơi giải trí của con người được quan tâm đến rất nhiều. Trong đó, việc giải trí bằng những trò chơi máy tính ngày càng phát triển và lan rộng ra do sự lôi cuốn mạnh mẽ của nó. Những người chơi game một mình trên máy tính càng không đáp ứng được yêu cầu mà thay vào đó là những game với nhiều máy tính kết nối với nhau. Xuất phát từ nhu cầu đó, nhóm chúng em đã thực hiện đề tài “Xây dựng game cờ caro có chat trong mạng LAN bằng java theo hướng cấu phần client – server”. Chương trình “Xây dựng game cờ caro có chat trong mạng LAN bằng java theo hướng cấu phần client – server” được xây dựng dưới đây áp dụng kỹ thuật lập trình mạng bằng ngôn ngữ Java, do SunMicroSystem đưa ra vào năm 1991. Trong quá trình thực hiện đề tài nhóm chúng em đã gặp không ít khó khăn và trở ngại với sự giúp đỡ của bạn bè cùng sự hướng dẫn tận tình, chỉ bảo cặn kẽ của thầy, cuối cùng nhóm em cũng hoàn thành xong đề tài với mọi sự hiểu biết của mình. Qua đây, nhóm chúng em xin gửi lời cảm ơn đến những người bạn trong lớp phát triển phần mềm theo hướng cấu phần KTPM2K10 đã góp ý và giúp đỡ và đặc biệt cảm ơn thầy Th.s Nguyễn Thái Cường người đã định hướng chúng em chọn đúng đề tài, truyền dạy các kĩ năng nghiệp vụ cũng như uốn nắn cho nhóm em, từ bài báo cáo đến cách thức thực hiện đề tài. Một lần nữa nhóm em xin chân thành cảm ơn thầy Sinh viên thực hiện TÓM TẮT BTL Cho phép nhiều người chơi ở những máy khác nhau ở mọi nơi trên internet. Máy server tạo ra một Socket phục vụ kết nối từng cặp người tham gia chơi cờ caro. Theo từng ván cờ. Mỗi phiên là một luồng đảm bảo sự trao đổi giữa 2 người chơi và xác định trạng thái ( thắng thua) của ván cờ. Trong mỗi ván cờ người đầu kết nối với server được gọi là người thứ nhất được gán với ký hiệu “X‟ còn người thứ 2 được gán với ký hiệu là “O”. Họ thay phiên nhau đánh vào những ô dự kiến ( nhấn vào ô mà mình định đánh) để nhanh chóng đạt được số ô (ví dụ 4, hay 5) thẳng hang theo hàng ngang, hàng dọc và đường chéo. Người nào đánh được số ô đó trước, người đó thắng cờ. Số ván cờ được tạo trên server là không hạn chế. Đề tài “Xây dựng game cờ caro có chat trong mạng LAN bằng java theo hướng cấu phần client – server” là xây dựng một chương trình chơi cờ caro với các gồm các nội dung sau: Chức năng Multi Player: Chơi 2 người. Chat trong mạng LAN. Chơi online: Chương trình hỗ trợ cho 2 người cùng trên mạng LAN.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN PHÁT TRIỂN PHẦN MỀM HƯỚNG CẤU PHẦN
ĐỀ TÀI: XÂY DỰNG GAME CỜ CARO CÓ CHAT TRONG MẠNG LAN BẰNG JAVA THEO HƯỚNG
Hà Nội, 12/2018
Trang 2LỜI NÓI ĐẦU
Ngày nay, do nhu cầu đời sống của con người ngày càng được nâng cao, trong
đó nhu cầu vui chơi giải trí của con người được quan tâm đến rất nhiều Trong đó,việc giải trí bằng những trò chơi máy tính ngày càng phát triển và lan rộng ra do sựlôi cuốn mạnh mẽ của nó Những người chơi game một mình trên máy tính càngkhông đáp ứng được yêu cầu mà thay vào đó là những game với nhiều máy tính kết
nối với nhau Xuất phát từ nhu cầu đó, nhóm chúng em đã thực hiện đề tài “Xây dựng game cờ caro có chat trong mạng LAN bằng java theo hướng cấu phần client – server”.
Chương trình “Xây dựng game cờ caro có chat trong mạng LAN bằng java theo hướng cấu phần client – server” được xây dựng dưới đây áp dụng kỹ thuật
lập trình mạng bằng ngôn ngữ Java, do SunMicroSystem đưa ra vào năm 1991.Trong quá trình thực hiện đề tài nhóm chúng em đã gặp không ít khó khăn vàtrở ngại với sự giúp đỡ của bạn bè cùng sự hướng dẫn tận tình, chỉ bảo cặn kẽ củathầy, cuối cùng nhóm em cũng hoàn thành xong đề tài với mọi sự hiểu biết củamình Qua đây, nhóm chúng em xin gửi lời cảm ơn đến những người bạn trong lớpphát triển phần mềm theo hướng cấu phần KTPM2-K10 đã góp ý và giúp đỡ và đặcbiệt cảm ơn thầy Th.s Nguyễn Thái Cường - người đã định hướng chúng em chọnđúng đề tài, truyền dạy các kĩ năng nghiệp vụ cũng như uốn nắn cho nhóm em, từbài báo cáo đến cách thức thực hiện đề tài Một lần nữa nhóm em xin chân thànhcảm ơn thầy!
Sinh viên thực hiện
Trang 3TÓM TẮT BTL
Cho phép nhiều người chơi ở những máy khác nhau ở mọi nơi trên internet.Máy server tạo ra một Socket phục vụ kết nối từng cặp người tham gia chơi cờ caro.Theo từng ván cờ Mỗi phiên là một luồng đảm bảo sự trao đổi giữa 2 người chơi vàxác định trạng thái ( thắng/ thua) của ván cờ Trong mỗi ván cờ người đầu kết nốivới server được gọi là người thứ nhất được gán với ký hiệu “X‟ còn người thứ 2được gán với ký hiệu là “O” Họ thay phiên nhau đánh vào những ô dự kiến ( nhấnvào ô mà mình định đánh) để nhanh chóng đạt được số ô (ví dụ 4, hay 5) thẳng hangtheo hàng ngang, hàng dọc và đường chéo Người nào đánh được số ô đó trước,người đó thắng cờ Số ván cờ được tạo trên server là không hạn chế
Đề tài “Xây dựng game cờ caro có chat trong mạng LAN bằng java theo hướng cấu phần client – server” là xây dựng một chương trình chơi cờ caro với
các gồm các nội dung sau:
- Chức năng Multi Player: Chơi 2 người
- Chat trong mạng LAN
- Chơi online: Chương trình hỗ trợ cho 2 người cùng trên mạng LAN
Trang 4MỤC LỤC
LỜI NÓI ĐẦU 2
TÓM TẮT BTL 3
MỤC LỤC 4
DANH MỤC HÌNH ẢNH 6
DANH SÁCH CÁC TỪ VIẾT TẮT 7
PHẦN MỞ ĐẦU 8
Chương 1 CƠ SỞ LÝ THUYẾT 10
1.1 Tổng quan về phát triển phần mềm theo hướng cấu phần 10
1.1.1 Giới thiệu về cấu phần 10
1.1.2 Cách xây dựng cấu phần 11
1.2 Tổng quan về ngôn ngữ Java 11
1.2.1 Giới thiệu về ngôn ngữ Java 11
1.2.2 Ứng dụng của Java 12
1.2.3 Những đặc điểm cơ bản của Java 12
1.2.4 Các flatform cơ bản của Java 12
1.2.5 Tiêu chuẩn của một môi trường Java điển hình 13
1.3 Sơ lược về hệ thống mạng máy tính và hệ phân tán 13
1.3.1 Hệ thống mạng máy tính 13
1.3.2 Hệ phân tán 13
1.4 Các giao thức mạng 13
1.4.1 Giao thức IP 13
1.4.2 Giao thức TCP 14
1.4.3 Giao thức UDP 14
1.5 Mô hình Client – Server 15
1.6 Lập trình Socket 15
1.7 Công cụ hỗ trợ lập trình bằng ngôn ngữ Java - NetBean IDE 16
Chương 2 Phân tích thiết kế hệ thống 17
2.1 Mô tả chương trình 17
2.2 Phân tích ứng dụng 17
2.3 Danh sách ca sử dụng: 17
2.4 Biểu đồ ca sử dụng: 18
2.5 Đặc tả ca sử dụng 18
2.5.1 Đánh cờ caro 18
Trang 52.5.2 Chat 19
2.5.3 Hiện thông tin người phát triển 20
2.5.4 Hiển thị luật chơi 20
2.5.5 Chơi mới 20
2.5.6 Kết nối lại 21
2.5.7 Kết nối địa chỉ IP mới 22
Chương 3 Cài đặt và triển khai 23
3.1 Thiết kế giao diện 23
3.2 Cấu phần trong bài tập lớn 30
Chương 4 Kết luận 32
TÀI LIỆU THAM KHẢO 33
PHỤ LỤC 34
Trang 6DANH MỤC HÌNH ẢNH
Hình 1 1 Mô hình Client – Server 16
Hình 1 2 Giao diện của NetBean IDE 17
Hình 3 1 Sơ đồ lớp 23
Hình 3 2 Giao diện bàn cờ và hộp chat 24
Hình 3 3 Giao diện kết nối dến Server 25
Hình 3 4 Giao diện kết nối đến Server 25
Hình 3 5 Giao diện Client và Server 26
Hình 3 6 Giao diện bên đánh cờ 26
Hình 3 7 Giao diện đánh cờ 27
Hình 3 8 Giao diện nút Help 27
Hình 3 9 Giao diện nút About 28
Hình 3 10 Giao diện khi thắng – thua 28
Hình 3 11 Giao diện chat giữa 2 máy 29
Hình 3 12 Giao diện ngắt kết nối 29
Hình 3 13 Giao diện ngắt kết nối 30
Hình 3 14 Giao diện ngắt kết nối 30
Trang 8PHẦN MỞ ĐẦU
Cờ caro là một loại trò chơi khá phổ biến vì luật chơi đơn giản và không đòihỏi nhiều về công cụ chơi, bạn chỉ cần một tờ giấy có kẻ ô và bút là đủ Chính vìvậy trò chơi này lại càng phổ biến trong giới học sinh sinh viên Cờ caro là trò chơiđối kháng 2 người: Trò chơi đối kháng (two-agent, conflicting game) : Gồm 2người chơi, đối thủ này sẽ tìm cách dành chiến thắng trước đối thủ kia trong một
số hữu hạn nước đi, mỗi nước đi ược tạo ra dựa từ 1 trạng thái bất kỳ của trận đấu.Nếu sau một số giới hạn nước đi, nếu chưa ai dành chiến thắng thì xem như hoà.Ngoài ra, thông tin về trận đấu là hoàn toàn biết đuợc (perfect information) đối với
Phương pháp: Nghiên cứu cơ sở lý thuyết và tài liệu thông qua các công cụ tìm
kiếm như google ,coccoc …
Sử dụng những kiến thức đã học về phân tích, thiết kế hệ thống để tổng hợp lại kiến thức và hoàn thành báo cáo
Dự kiến kết quả đạt được: Cung cấp những tài liệu cần thiết về các công nghệ
được áp dụng Phân tích, thiết kế, đưa ra được các cấu phần một cách hợp lý Xây dựng được các cấu phần đúng theo phân tích thiết kế
Trang 9Tóm tắt nội dung của các chương:
Chương 1: Cơ sở lý thuyết Trong chương này sẽ giới thiệu về ngôn ngữ cũng
như công cụ được áp dụng trong đề tài BTL
Chương 2: Phân tích thiết kế hệ thống Khảo sát về hệ thống, vẽ biểu đồ UC,
đặc tả UC
Chương 3: Cài đặt và triển khai Xây dựng chương trình và thiết kế giao diện
phần mềm
Chương 4: Đánh giá kết luận Kết luận chung cho các chương trong BTL Nhấn
mạnh những vấn đề đã giải quyết đồng thời trình bày các vấn đề vẫn chưa được giảiquyết và đưa ra kiến nghị, đề xuất
Trang 10Chương 1 CƠ SỞ LÝ THUYẾT
1.1.Tổng quan về phát triển phần mềm theo hướng cấu phần.
1.1.1 Giới thiệu về cấu phần
Các cấu phần phần mềm được định nghĩa trong nhiều cách khác nhau từ cácđiểm giống nhau và khác nhau của khung nhìn [Brown 1998] trình bày bốn địnhnghĩa của một thành phần phần mềm, trong tổng kết Hội thảo quốc tế CBSE đầutiên trong tháng 4 năm 1998:
Một cấu phần là một phần không tầm thường, gần như độc lập và là mộtphần có thể thay thế của hệ thống, đáp ứng một chức năng rõ ràng trong mộtkiến trúc được xác định Một cấu phần thích nghi và cung cấp việc thực hiệnvật lý của một tập các giao diện (Philippe Krutchen, Rational Software)
Một cấu phần phần mềm chạy thực (runtime) là gói kết nối động của mộthoặc nhiều chương trình quản lý như một đơn vị và truy cập thông qua giaodiện tài liệu có thể được phát hiện khi chạy thực (Gartner Group)
Một cấu phần phần mềm là một đơn vị của thành phần với giao diện đặc tả
và chỉ phụ thuộc bối cảnh Một cấu phần phần mềm có thể được triển khaiđộc lập và có thể tham gia với tư cách là bên thứ 3 (Clemes Szyperski)
Một cấu phần thương mại đại diện cho việc thực hiện phần mềm của một quátrình kinh doanh Nó bao gồm các thành phần phần mềm cần thiết để thểhiện, thực hiện, và triển khai các nội dung như có thể tái sử dụng các cấuphần cho một hệ thống kin doanh lớn hơn (Wojtek Kozaczynski, SSA)
Từ các định nghĩa trên, chúng ta cũng có thể rút ra được định nghĩa về cấu phần
rõ hơn:
“Một cấu phần phần mềm là một mảnh khép kín, tự triển khai mã với các chứcnăng được xác định rõ và có thể được lắp rắp với các cấu phần khác thông qua giaodiện của nó”
Một cấu phần là một chương trình hay một tập hợp các chương trình có thể đượcbiên dịch và thực thi Đó là khép kín, do đó, nó cung cấp chức năng mạch lạc Nó tựtriển khai để nó có thể được cài đặt và thực hiện trong một môi trường người dùngcuối Nó có thể được lắp ráp với các thành phần khác để có thể được tái sử dụngnhư một đơn vị trong các ngữ cảnh khác nhau
COP là Component-Oriented Programming (Lập trình hướng cấu phần)
COP cung cấp một phương thức cao hơn mức trừu tượng Có một số lượng ngàycàng lớn các components tái sử dụng thư viện hỗ trợ trong việc phát triển các ứngdụng cho các lĩnh vực khác nhau
Trang 11Tư duy lập trình hướng thành phần (component-oriented programming) theo ýtưởng:
Giải quyết bài toán bằng cách xây dựng một tập các thành phần (component)
có tính độc lập tương đối với nhau Mỗi thành phần đảm nhiệm một phầncông việc nhất định Các thành phần này phải tuân theo tiêu chuẩn nhất địnhđược xác định trước bao gồm giao diện, các kết nối, phiên bản, và triển khai
Về nguyên tắc, mỗi thành phần có thể tái sử dụng độc lập với ngữ cảnh, nóicách khác có thể dễ dàng sử dụng tại mọi lúc, mọi nơi
Sau đó, người ta ghép các thành phần với nhau để thu được một phần mềmthoả mãn một tập các yêu cầu xác định
1.2 Tổng quan về ngôn ngữ Java
1.2.1 Giới thiệu về ngôn ngữ Java
Java là một ngôn ngữ lập lập trình, được phát triển bởi Sun Microsystem vàonăm 1995, là ngôn ngữ kế thừa trực tiếp từ C/C++ và là một ngôn ngữ lập trìnhhướng đối tượng
Vì sao ngôn ngữ này lại được đặt tên là Java? Java là tên một hòn đảo ởIndonesia - hòn đảo nổi tiếng với loại coffee Peet và cũng là loại nước uống phổbiến của các kỹ sư Sun Ban đầu Ngôn ngữ này được đặt tên là "Oak" (có nghĩa là
"Cây sồi" - 1991), nhưng các luật sư của Sun xác định rằng tên đó đã được đăng kýnhãn hiệu nên các nhà phát triển đã phải thay thế bằng một tên mới - và cũng vì lý
do trên mà cái tên Java đã ra đời và trở thành tên gọi chính thức của Ngôn ngữ này Ngôn ngữ Lập trình Java
Trang 12-1.2.2 Ứng dụng của Java
Ngày nay Java được sử dụng với các mục đích sau:
- Phát triển ứng dụng cho các thiết bị điện tử thông minh, các ứng dụngcho doanh nghiệp với quy mô lớn
- Tạo các trang web có nội dung động (web applet), nâng cao chức năngcủa server
- Phát triển nhiều loại ứng dụng khác nhau: Cơ sở dữ liệu, mạng, Internet,viễn thông, giải trí,
1.2.3 Những đặc điểm cơ bản của Java
Tiêu chí hàng đầu của Ngôn ngữ Lập trình Java là "Write Once, Run Anywhere"(Viết một lần, chạy mọi nơi), nghĩa là Java cho phép chúng ta viết code một lần vàthực thi được trên các hệ điều hành khác nhau Ví dụ, chúng ta viết code trên Hệđiều hành Windows và nó có thể thực thi được trên các Hệ điều hành Linux và MacOS
Với đặc điểm nổi bật đó, Java có những đặc điểm cơ bản như sau:
- Đơn giản và quen thuộc: Vì Java kế thừa trực tiếp từ C/C++ nên nó cónhững đặc điểm của ngôn ngữ này, Java đơn giản vì mặc dù dựa trên cơ
sở C++ nhưng Sun đã cẩn thận lược bỏ các tính năng khó nhất của củaC++ để làm cho ngôn ngữ này dễ sử dụng hơn
- Hướng đối tượng và quen thuộc
- Mạnh mẽ (thể hiện ở cơ chế tự động thu gom rác - Garbage Collection)
và an toàn
- Kiến trúc trung lập, độc lập nền tảng và có tính khả chuyển (Portability)
- Hiệu suất cao
- Máy ảo (biên dịch và thông dịch)
- Phân tán
- Đa nhiệm: Ngôn ngữ Java cho phép xâ dựng trình ứng dụng, trong đónhiều quá trình có thể xảy ra đồng thời Tính đa nhiệm cho phép các nhàlập trình có thể biên soạn phần mềm đáp ứng tốt hơn, tương tác tốt hơn
và thực hiện theo thời gian thực
-
1.2.4 Các flatform cơ bản của Java
Java Platform gồm có 3 thành phần chính:
- Java Virtual Machine (Java VM): Máy ảo Java
- Java Application Programming Interface (Java API)
- Java Development Kit (JDK) gồm trình biên dịch, thông dịch, trợ giúp,soạn tài liệu và các thư viện chuẩn
Trang 131.2.5 Tiêu chuẩn của một môi trường Java điển hình
Thông thường, các chương trình Java trải qua 5 giai đoạn chính:
- Editor: Lập trình viên viết chương trình và được lưu vào máy tính vớiđịnh dạng java
Compiler: Biên dịch chương trình thành bytecodes (định dạng class) nhờ bước trung gian này mà Java được viết 1 lần và chạy trên các hệ điềuhành khác nhau
Class Loader: Đọc file class chứa mã bytecodes và lưu vào trong bộnhớ
- Bytecode Verifier: Đảm bảo rằng mã bytecodes là hợp lệ và không viphạm các vấn đề về bảo mật của Java
- Intepreter: Biên dịch bytecodes thành mã máy để máy tính có thể hiểuđược và sau đó thực thi chương trình
1.3 Sơ lược về hệ thống mạng máy tính và hệ phân tán
=>Tồn tại nhiều máy tính xử lí độc lập
Hệ phân tán tập trung vào các ứng dụng, mọi hệ phân tán phụ thuộc vào các dịch
vụ được cung cấp bởi các hệ thống máy tính
1.4 Các giao thức mạng
1.4.1 Giao thức IP
IP là một số nguyên 32 bit, thường được biểu diễn dưới dạng một dãy 4 sốnguyên cách nhau bởi dấu chấm Một số nguyên trong địa chỉ IP là một byte,thường được gọi là một octet (8 bits)
Một địa chỉ IP gồm có 3 phần
Phần đầu tiên là địa chỉ mạng (network address)
Trang 14 Phần cuối cùng là địa chỉ máy (host address).
Phần còn lại (nếu có) là địa chỉ mạng con (subnet address)
Địa chỉ IP được chia ra làm 5 lớp mạng (lớp A, B, C, D và E) trong đó 4 lớp đầuđược sử dụng còn lớp E dành để nghiên cứu, lớp D dung cho việc phát triển cácthông tin broadcast/multicast, lớp A,B,C được dung trong cuộc sống hàng ngày
Trong bộ giao thức TCP/IP, TCP là tầng trung gian giữa giao thức IP bên dưới
và một ứng dụng bên trên Các ứng dụng thường cần các kết nối đáng tin cậy kiểuđường ống để liên lạc với nhau, trong khi đó, giao thức IP không cung cấp nhữngdòng kiểu đó, mà chỉ cung cấp dịch vụ chuyển gói tin không đáng tin cậy TCP làmnhiệm vụ của tầng giao vận trong mô hình OSI đơn giản của các mạng máy tính.Các ứng dụng gửi các dòng gồm các byte 8-bit tới TCP để chuyển qua mạng.TCP phân chia dòng byte này thành các đoạn có kích thước thích hợp (thường đượcquyết định dựa theo kích thước của đơn vị truyền dẫn tối đa của tầng liên kết dữ liệucủa mạng mà máy tính đang nằm trong đó) Sau đó, TCP chuyển các gói tin thuđược tới giao thức IP để gửi nó qua một liên mạng tới mô đun TCP tại máy tínhđích TCP kiểm tra để đảm bảo không có gói tin nào bị thất lạc bằng cách gán chomỗi gói tin một "số thứ tự" Số thứ tự này còn được sử dụng để đảm bảo dữ liệuđược trao cho ứng dụng đích theo đúng thứ tự Mô-đun TCP tại đầu kia gửi lại "tinbáo nhận" cho các gói tin đã nhận được thành công; một "đồng hồ" tại nơi gửi sẽbáo thời gian nếu không nhận được tin báo nhận trong khoảng thời gian bằng mộtround-trip time, và dữ liệu (được coi là bị thất lạc) sẽ được gửi lại TCP sử dụngchecksum (giá trị kiểm tra) để xem có byte nào bị hỏng trong quá trình truyền haykhông; giá trị này được tính toán cho mỗi khối dữ liệu tại nơi gửi trước khi nó đượcgửi, và được kiểm tra tại nơi nhận
Trang 151.4.3 Giao thức UDP
UDP là một trong những giao thức cốt lõi của giao thức TCP/IP Dùng UDP,chương trình trên mạng máy tính có thể gởi những dữ liệu ngắn được gọi làdatagram tới máy khác UDP không cung cấp sự tin cậy và thứ tự truyền nhận màTCP làm; các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không cóthông báo Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như kíchthước nhỏ và yêu cầu khắt khe về thời gian Do bản chất không trạng thái của nónên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêucầu
1.5 Mô hình Client – Server
Mô hình client/server là một mô hình nổi tiếng trong mạng máy tính, được ápdụng rất rộng rãi và là mô hình của mọi trang web hiện có Ý tưởng của mô hìnhnày là máy con (đóng vài trò là máy khách) gửi một yêu cầu để máy chủ (đóng vaitrò người cung ứng dịch vụ), máy chủ sẽ xử lý và trả kết quả về cho máy khách
Hình 1 1 Mô hình Client – Server
1.6 Lập trình Socket
Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chươngtrình yêu cầu dịch vụ ( client) và một chương trình cung cấp dịch vụ (server) trênmạng LAN, WAN hay Internet và đôi lúc là giữa những quá trình ngay bên trongmáy tính Mỗi socket có thể được xem như một điểm cuối trong một kết nối Mộtsocket trên máy yêu cầu dịch vụ có địa chỉ mạng được cấp sẵn để “gọi” một sockettrên máy cung cấp dịch vụ Một khi socket đã được thiết lập phù hợp, hai máy tính
có thể trao đổi dịch vụ và dữ liệu
Trang 16Để tạo 1 ứng dụng sử dụng socket thì cần phải có server và client.
Server và client sẽ gửi và nhận dữ liệu thông qua socket cụ thể: Client sẽ gửi yêucầu có các tham số đến server, server nhận được các tham số và sẽ xử lý ở server rồitruyền trả lại cho client kết quả (1 ví dụ đơn giản là : client sẽ nhập 1 String và gửi
nó cho server và server sẽ đảo ngược String đó rồi trả lại cho client , cứ nhập nhưvậy cho đến khi Client đã chuỗi "quit" thì sẽ thoát )
1.7 Công cụ hỗ trợ lập trình bằng ngôn ngữ Java - NetBean IDE
NetBean IDE là một “môi trường phát triển tích hợp“ (Integrated DevelopmentEnvironment) kiểu như Visual Studio của Microsoft và được xem là một một bộứng dụng “must-download” dành cho các nhà phát triển phần mềm
NetBean IDE hỗ trợ nhiều hệ điều hành khác nhau như Windows, Mac, Linux,
và Solaris NetBean bao gồm một IDE mã nguồn mở và một nền tảng ứng dụng chophép nhà phát triển nhanh chóng tạo nên các ứng dụng dành cho web, doanhnghiệp, desktop và thiết bị di động bằng các ngôn ngữ lập trình Java, C/C++,JavaScript, Ruby, Groovy, và PHP
NetBeans IDE 7.1.1 cung cấp nhiều tính năng mới như shortcut tìm kiếm trongtoàn bộ IDE gọi là QuickSearch, giao diện thận thiện hơn với người dùng, và tínhnăng tự động biên dịch khi lưu (Compile on Save) Ngoài việc hỗ trợ Java mọiphiên bản (Java SE, Java EE, Java ME), NetBean IDE còn là công cụ lý tưởng choviệc phát triển phần mềm bằng các ngôn ngữ PHP, C/C++, Groovy and Grails,Ruby and Rails, Ajax and JavaScript
Trang 17Hình 1 2 Giao diện của NetBean IDE