Luận văn Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN
Mục lục
1.1.Lời nói đầu . 3
1.2. Mạng nội bộ - LAN (Local Area Netword) . 3
1.3. Mô hình Client – Server . 4
Chương 2 Tìm hiểu về C# . 7
2.1. Tổng quan về C# . 7
2.2. Các thành phần cơ bản . 7
2.3. Cấu trúc một chương trình C# . 13
2.4. Lập trình mạng với C# . 13
Sử dụng C# socket . 16
2.5. Lập trình với C# Socket helper classes . 17
2.6. Lập trình với thread . 20
Chương 3. Phân tích và thiết kế chương trình . 23
3.1. Cấu trúc chung của chương trình . 23
3.2. Phân tích và thiết kế . 24
3.2.1 Viết ứng dụng Client (ChatNDraw) . 24
3.2.2 Viết ứng dụng Server (PrismServerAdmin) . 27
Chương 4. Chương trình thực nghiệm . 30
4.1. Giao diện chương trình Server . 30
4.2. Giao diện chương trình Client . 31
Chương 5. Tổng kết và hướng phát triển của đồ án . 33
5.1 Những kết quả đạt được: . 33
5.2 Những vấn đề tồn tại . 33
5.3 Hướng phát triển của đồ án . 33
5.4 Tài liệu Tham khảo . 33
h phần PrismConnection thông báo cho máy client biết PrismRooms được tạo ra gần đây thông qua sự kiện RoomAdded. Bạn sẽ nhận được một loạt các sự kiện này ngay lập tức sau khi đăng nhập thành công vào mỗi PrismRoom hiện tại đang tồn tại trên máy Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN MSSV: 090086 – Trần Thị Hương- CT902 26 chủ. Máy client sẽ đại diện cho các phòng trong các giao diện người dùng, bằng cách sử dụng một ListBox, ListView, hoặc điều khiển tương tự. Khi một PrismRoom được lấy ra, PrismConnection thông báo cho máy client thông qua một sự kiện RoomRemoved. PrismConnection cũng thông báo cho máy client khi người sử dụng vào và rời PrismRoom. Thông qua các sự kiện UserAddedToRoom, UserLeftRoom đã hoàn thành xong. Sau khi đăng nhập thành công vào máy client được đặt vào phòng mặc định hoặc phòng ngoài. PrismConnection thông báo cho máy client là nó đã nhập vào một phòng mới qua sự kiện JoinedRoom. Lưu ý rằng JoinedRoom được kích hoạt, thêm vào một sự kiện accompanyingUserAddedToRoom; UserAddedToRoom có chứa các đối tượng PrismUser là đại diện cho các máy client có nghĩa là thực sự kết nối trong ứng dụng cục bộ . Để tham gia PrismRoom khác nhau, gọi phương thức EnterRoom. Để tạo tạo một PrismRoom mới, gọi phương thức CreateRoom. Sau khi gọi một trong những phương thức, bạn sẽ nhận được một vài sự kiện, UserLeftRoom (Bạn đã rời khỏi phòng), UserAddedToRoom (cho rằng bạn đã nhập phòng mới ), và cuối cùng JoinedRoom. Ngoài ra, nếu bạn là người dùng cuối cùng rời một phòng, PrismServer sẽ hủy phòng (trừ khi nó được mặc định phòng ngoài) và PrismConnection sẽ kích hoạt sự kiện RoomRemoved. Nếu bạn tạo một phòng mới, bạn sẽ nhận được những sự kiện RoomAdded trước khi UserAddedToRoom và JoinedRoom. d. PrismRooms dành cho những trò chơi nhiều ngƣời chơi Phương thức CreateRoom có 2 tham số, lệnh tên phòng và số lượng tối đa mà người tham gia phòng có thể chứa (0 để chỉ định cho biết không có tối đa số). Nếu bạn vượt qua một số lớn hơn số không, PrismConnectionwill kích hoạt một sự kiện StartSignal khi các chỉ số lượng người tham gia đã nhập các phòng, và máy chủ sẽ khóa phòng như vậy không cho máy client khác có thể vào phòng. Tính năng này được thiết kế để cho phép nhiều người chơi trò chơi để bắt đầu sau khi xác định số lượng người chơi đã nhập trò chơi phòng. Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN MSSV: 090086 – Trần Thị Hương- CT902 27 e. Những thông điệp Chat và Dữ liệu Khi bạn ở trong một PrismRoom ,bạn có thể trao đổi chat và những thông điệp dữ liệu với những máy client khác trong phòng. Để gửi một chuỗi chat văn bản, gọi phương thức SendChat. Khi một chuỗi của chat văn bản được nhận từ máy client khác trong phòng (lưu ý điều này loại trừ máy cục bộ), PrismConnection kích hoạt sự kiện ChatMessageReceived "Data Messages" cũng là những chuỗi đã được gủi tới những máy client trong phòng, và được quản lý bộ nhớ tương tự như cách để chatstrings. Ý tưởng đằng sau thông điệp dữ liệu là để cung cấp điều kiện thuận lợi cho những ứng dụng trên máy client thông qua ứng dụng cụ thể, không thể chat, dữ liệu cho các máy client trong phòng. Gọi SendData để gửi thông điệp dữ liệu, và đáp ứng với các thông điệp dữ liệu bởi xử lý các sự kiện DataMessageRecieved. Tóm lại: ChatNDraw bao gồm mã nguồn đầy đủ cho ứng dụng đơn giản trên máy client . Điều này cho phép người dùng trên máy client kết nối với một PrismServer, tạo và tham gia phòng chat, chat với những người dùng khác, và chia sẻ vẽ trên một bảng đen. Cho phép người dùng sửa đổi thông tin cá nhân, xem trạng thái của Server.. 3.2.2 Viết ứng dụng Server (PrismServerAdmin) Các thành phần PrismServer là cơ sở của một PrismServer ứng dụng máy chủ. Gói gọn đa chuỗi server socket, quản lý các Subject Names, PrismRooms, và PrismUsers và định tuyến xử lý các thông điệp đã được kết nối với những máy client. Thành phần PrismServer cung cấp một số đặc tính để điều khiển các mặt hoạt động của máy chủ: Port – Chỉ rõ số cổng mà máy chủ sẽ lắng nghe cho các kết nối trên. LobbyName –Tên mặc đinh PrismRoom mà những máy client mới thêm vào. ProhibitSameIP – Nếu đúng, cấm nhiều kết nối từ những địa chỉ IP giống nhau. ProhibitSameUserName – Nếu đúng, cấm nhiều người dùng đăng nhập cùng một tên Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN MSSV: 090086 – Trần Thị Hương- CT902 28 PingInterval – Kiểm soát những Client ping vào Server, những client ping không được đáp ứng như đã ra ngoài và không kết nối. Implementation – Cần thiết để thiết lập một số trường hợp của thành phần mà xuất phát từ PrismServerImplementation Thành phần PrismServer cũng cung cấp một vài phương thức để mà cho phép điều hành viên tương tác giữa server và kết nối với những client, như một chuỗi các sự kiện. Những ứng dụng nên đáp lại những sự kiện được cập nhật từ giao diện người dùng để phản hồi lại thông tin đã thay đổi (Những client mới kết nối, thêm hoặc xóa phòng…). Quan sát ứng dụng PrismServerAdmin bao gồm ứng dụng server mẫu để thực thi những hành động. Quản lý User trong Server Thành phần PrismServer trình bày một đặc tính Implementation mà phải gán cho một thành phần mà xuất phát từ PrismServerImplementation. PrismServerImplementation cung cấp một giao diện cho việc quản lý người dùng. Bạn có thể bắt nguồn từ thành phần PrismServerImplementation mới để cho phép server sử dụng tệp cục bộ, một cơ sở dữ liệu, hoặc một vài kỹ thuật lưu trữ khác để quản lý thông tin người dùng. Kỹ thuật lưu trữ được định nghĩa bắt nguồn từ lớp để sau đó tham khảo như ―Đăng ký thông tin người dùng‖ điều này không phù hợp với đăng ký của Window. Bao gồm những gói cụ thể mà bạn có thể sử dụng : PrismServerFileImplementation. Đây là thành phần lưu trữ thông tin người dùng bằng file nhị phân trong cục bộ file hệ thống. Thành phần PrismServerImplementation chứa những phương thức mà quan trọng đưa ra việc bổ sung quản lý người dùng. bool UserExists(string userName) - Trả lại tên tài khoản đã tồn tại trong khi người dùng đăng ký. bool IsPasswordValid(string userName, string password) – Hiệu chỉnh lại mật khẩu cho người dùng bool CheckUserName(string userName, ref string msg) – Kiểm tra tên tài khoản bool CheckPassword(string password, ref string msg) – Kiểm tra mật khẩu Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN MSSV: 090086 – Trần Thị Hương- CT902 29 void StoreUserInfo(PrismUser user) – Lưu trữ thông tin người dùng khi đăng ký. bool CheckRoom(string roomName, int maxUsers, ref string msg) – Kiểm tra phòng. void SaveSettings() – Ghi lại những thiết lập của Server. void LoadSettings() – Nạp vào những thiết lập của Server.. void Initialize() – Thực hiện khởi tạo trước đây.. void ProcessCustomCommand(string commandName, string commandParams) – Cung cấp một kỹ thuật để xử lý những lệnh tùy chỉnh của Server. Một ứng dụng Client có thể gọi phương thức CustomCommand của PrismConnection để gửi những lệnh tùy chỉnh tới Server. Một lệnh tùy chỉnh gồm có tên lệnh (string) và những tham số (string). Thành phần PrismServer cũng có thể chuyển cho client những lệnh tùy chỉnh bằng cách sử dunhj phương thức CustomCommand.Cả hai thành phần CustomCommand và PrismConnection đều cung cấp những sự kiện CustomCommandRecieved để xác nhận những lệnh tùy chỉnh. Đây là cấu trúc rất hay đó là tính mềm dẻo và tình tùy biến đối với Client và Server Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN MSSV: 090086 – Trần Thị Hương- CT902 30 CHƢƠNG 4. CHƢƠNG TRÌNH THỰC NGHIỆM 4.1. Giao diện chƣơng trình Server Giao diện chương trình Server khi chưa có một Client nào kết nối đến Server. Muốn Server lắng nghe ta kích hoạt bắt đầu, và kết thúc thì sử dụng nút Kết thúc. Đây là giao diện server khi bắt đầu lắng nghe Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN MSSV: 090086 – Trần Thị Hương- CT902 31 4.2. Giao diện chương trình Client Giao diện Client khi chưa kết nối Khi Client muốn kết nối người dùng phải nhấn vào nút ―Kết nối‖. Sau đó điền các thông tin vào bảng sau : Nếu chưa đăng ký Tài khoản thì nhấn ― Tạo tài khoản ‖ để thực hiện đăng ký : Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN MSSV: 090086 – Trần Thị Hương- CT902 32 Giao diện người dùng sau khi kết nối thành công: Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN MSSV: 090086 – Trần Thị Hương- CT902 33 CHƢƠNG 5. TỔNG KẾT VÀ HƢỚNG PHÁT TRIỂN ĐỒ ÁN 5.1 Những kết quả đạt được Luận văn đã đạt được những kết quả sau: - Xây dựng thành công ứng dụng Chát trên mô hình Client – Server cho phép nhiều người có thể chat với nhau trên mạng Lan. - Chương trình chạy tương đối ổn định. - Thực hiện được chức năng quản lý User . - Tìm hiểu ngôn ngữ lập trình C#. 5.2 Những vấn đề tồn tại - Chưa thực hiện Chat được bằng tiếng việt. - Các tiện ích của hệ thống chưa nhiều như Voice và CAM. 5.3 Hướng phát triển của đồ án Để hệ thống có thể thực sự giúp nhiều tiện ích cho người dùng, cần phải cải tiến , bổ sung và khắc phục những yếu kém, những vấn đề còn tồn tại của hệ thống. Thêm và tích hợp một số chức năng tiện ích khác. 5.4 Tài liệu Tham khảo [1] Richard Blum, C# Network Programming, Sybex © 2003, ISBN:0782141765 [2] Kỹ thuật lập trình C#, Biên dịch từ cuốn Professional C#, 2nd Edition, Xuất bản bởi Wrox Press Ltd . [3] Andy Harris, Microsoft C# Programming for the Absolute Beginner, Premier Press © 2002, ISBN: 1931841160 [4] Kỹ thuật lập trình ứng dụng C#.net toàn tập ,biên soạn Phạm Hữu Khang ,NXB Lao động – Xã hội , xuất bản năm 2005. [5] Mạng máy tính , tác giả Lê Đình Danh. Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN MSSV: 090086 – Trần Thị Hương- CT902 34
File đính kèm:
- Luận văn Tìm hiểu ngôn ngữ lập trình C Sharp và viết ứng dụng Chat trong mạng LAN.pdf