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

pdf35 trang | Chuyên mục: Visual C# | Chia sẻ: dkS00TYs | Lượt xem: 2566 | Lượt tải: 1download
Tóm tắt nội dung 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, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfLuậ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
Tài liệu liên quan