Internet Relay Chat Protocol - Tìm hiểu và ứng dụng phần 9 potx

9 352 2
Internet Relay Chat Protocol - Tìm hiểu và ứng dụng phần 9 potx

Đang tải... (xem toàn văn)

Thông tin tài liệu

Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụng Chương II: Đa Luồng(multithreading) www.diachiweb.com - Trang 73 P P h h a a à à n n I I V V : : Y Y e e â â u u C C a a à à u u & & K K i i e e á á n n T T r r u u ù ù c c C C h h ư ư ơ ơ n n g g T T r r ì ì n n h h ü Chương I: Yêu cầu chức năng & phi chức năng üChương II: Kiến trúc chương trình Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụngChương I: Yêu Cầu Chức Năng &ø Phi Chức Năng www.diachiweb.com - Trang 74 Chương I: Yêu Cầu Chức Năng &ø Phi Chức Năng 1. Đối với Chat Client Yêu cầu chức năng Ø Chương trình cho phép người dùng lưu giữ thông tin về servername và port ngoài ra còn thông tin về nhóm server Ø Cho phép thêm mới server Ø Cho phép cập nhật lai thông tin server Ø Cho phép hủy thông tin server Ø Lưu giữ thông tin cấu hình hiện trạng của lần hoạt động trước ví dụ: thông tin về nickname, realname,email address, v.v… Ø Cho phép user connect và disconnect trong các trường hợp sau Disconnect khi chưa connect xong ở mức TCP. Disconnect khi connect xong ở mức TCP nhưng chưa xong ở mức application (chưa thiết lập kết nối xong theo giao thức IRC). Disconnect khi đã xong ở mức application. Ø Việc thiết lập kết nối và cắt đứt kết nối phải hoạt động theo cơ chế multithread để đảm bảo chương trình không bò block Ø Các message được truyền, nhận, và xữ lý cũng phải được hoạt động theo cơ chế multithread nhằm bảo đảm chương trình hoạt động hiệu quả hơn. Ø Chức năng tham gia vào một hay nhiều channel. Ø Chức năng thoát khỏi channel. Ø Về chức năng chat phải cho phép người sử dụng thực hiện chat với hai cách: Chat riêng với user. Chat trên channel. Ø Chương trình phải cho phép người sử dụng chọn user để chat Ø Chương trình cho phép người dùng Ban hay Kick user ra khỏi channel Ø Chức năng thay đổi nick name hiện tại thành nick khác. Ø Chức năng thiết lập cơ chế trả lời tự động (cơ chế away message). Ø Chức Năng DCC(Direction Connection Chat) Chat. Yêu cầu phi chức năng: Ø Chức năng truy vấn user (Query User) Ø Chức năng truy vấn Who is User. Ø Chức năng send CTCP. Ø Chức năng về giao diện: tùy chọn về màu sắc Ø Chức năng chat thông qua proxy server Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụngChương I: Yêu Cầu Chức Năng &ø Phi Chức Năng www.diachiweb.com - Trang 75 2. Đối với chat server Yêu cầu chức năng Ø Server phải phục vụ nhiều client trong cùng thời điểm, mỗi client được phục vụ liên tục. Ø Chức năng Restart và ShutDown server Ø Chức năng tùy chọn cấu hình cho server như chỉ số port, tên server, số lượng tối đa connection, số lượng tối đa channel được phép mở. Ø Chức năng kiểm soát và quản lý user trên server, trên server có thể kiểm soát quá trình truyền nhận message của từng client. Yêu cầu phi chức năng Ø Chức năng theo dõi thông số hoạt động, tỉ lệ phần trăm tài nguyên mà server chiếm giữ Ø Chức năng kết nối và chấp nhận kết nối với server khác, chuyển tiếp message đến server khác. Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụngChương II: Kiến trúc chương trình: www.diachiweb.com - Trang 76 Chương II: Kiến trúc chương trình: A. Chat Client Chương trình gồm 2 nhóm lớp chính 1. Lớp giao diện Ø frmAddNew Lớp frmAddNew tạo ra form cho phép user nhập vào server mới hoặt cập nhật lại thông tin server Ø frmBanKick Lớp frmBanKick tạo ra form cho phép user có thể ban hay kick user nếu user có quyền Ø frmChangeNick Lớp này cho phép user thay đổi nickname của mình. Ø frmChannelStatus Lớp frmChannelStatus tạo ra khi user join thành công vào một channel trên form này gồm 3 control txtChannelStatus trạng thái channel, txtMessage, lstNickName đây là danh sách user hiện có trên channel danh sách này luôn được cập nhật và thay đổi khi có sự tham gia hay thoát khỏi của user. Ø frmChannelStatusListenner Lắng nghe sự kiện của channelstatus Ø frmChannelStatusKeylistener Lắng nghe sự kiện phím của channelstatus Ø frmChatForm Khi thực hiện chat với riêng với từng user, mỗi user được chat sẽ có một frmChatForm Ø frmConnect Lớp này sẽ hiển thò form connect to server trên form này có chức năng chọn server, Addserver Editserver, Deleteserver.v.v … Ø frmConnectListenEvent Lớp frmConnectListenEvent chòu trách nhiệm lắng nghe và xử lý sự kiện cho form connect. Ø frmDCCChat Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụngChương II: Kiến trúc chương trình: www.diachiweb.com - Trang 77 Lớp frmDCCChat hiển thò form DCCChat, form này cho phép user tạo ra connection mới kết nối trực tiếp vào user muốn chat với mình (Direction Connection Chat) Ø frmGetListChannel lớp này cho phép user truy vấn đến server lấy về danh sách channel hiện có. Ø frmJoinChannel Lớp frmJoinChannel cho phép user chọn channel để join tuy nhiên danh sách channel trên lớp này là những channel thông dụng đôi khi không có trên server trước khi join bạn nên dùng form getlistchannel. Ø frmJoinChannelListener Lớp này chòu trách nhiệm lắng nghe và xữ lý sự kiện cho form join channel Ø frmMainForm Lớp mainform là form chinh lớp này sẽ tồn tại khi chương trình tạo ra và duy trì suốt trong chương trình cho đến khi kết thúc. Trên lớp này lưu giữ các tham chiếu đến các đối tượng, có thể xem lớp này là lớp lưu giữ các biến toàn cục. Ø frmMainFormListener frmMainFormListener lắng nghe và xữ lý sự kiện cho lớp frmMainForm Ø frmMainFormMouseEvent frmMainFormMouseEvent lắng nghe và xữ lý sự kiện mouse cho lớp frmMainForm Ø frmPartChannel lớp part channel dùng cho user thoát khỏi channel mà họ đã join Ø frmSetAway Lớp frmSetAway dùng để thiết lập việc trả lời tự động 2.Lớp xữ lý Ø threadIn Nhận message nhập vào phân phối message cho từng trường hợp trong quá trình thiết lập kết nối giữa client và server. Ø threadOut Chòu trách nhiệm xuất message đến server. Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụngChương II: Kiến trúc chương trình: www.diachiweb.com - Trang 78 Ø threadJoin Nhận message nhập vào và xữ lý cho từng trường hợp sau quá trình thiết lập kết nối thành công Ø choiseItemListener Xữ lý cho sự kiện chọn combo box và listbox Ø openSocket Lớp này chòu trách nhiệp mở kết nối ở cấp TCP liên kết đến server Ø openServerSocket Lớp này mở ServerSocket lắng nghe kết nối cho dòch vụ DCCChat(Direction Connection Chat) Ø DCCChatGetData Nhận message từ DCCChatServer Ø DCCChatGetDataServer Nhận message từ DCCChatClient Ø GetDataFromSocket Lớp này cho phép đọc dữ liệu từ luồng nhập và xuất dữ liệu từ luồng xuất lớp này phục vụ cho lớp threadIn và lớp threadOut. Ø SettingFile Lớp SettingFile đọc và ghi file cấu hình hệ thống Ø StatusButton Lớp này kế thừa từ Button Command Ø channelFileProcess đọc và ghi file luu giữ danh sách channel B. Chat Server 1. Lớp giao diện Ø frmConfig Hiển thò form cấu hình cho server Ø frmListUser Hiển thò danh sách user Ø frmMainForm Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụngChương II: Kiến trúc chương trình: www.diachiweb.com - Trang 79 form chính 2. Lớp xữ lý Ø ChannelNameItem Lớp này tao ra đối tượng channelItem đối tượng này lưu giữ thông tin channel số lượng user hiện có, topic, tên channelv.v… Ø GetDataFromSocket Lớp này nhận vào đối tượng socket và đọc và ghi dữ liệu lên luồng xuất nhập Ø IRCServerSocket Lớp này chòu trách nhiệm tạo socket đợi và chấp nhận kết nối từ client, khi có client kết nối thành công (ở mức TCP) lớp này sẽ tạo ra một đối tượng UserConnectionItem truyền socket mà nó nhận được làm đối số. Ø NickNameItem Một đối tượng UserConnectionItem sẽ là con của đối tượng NickNameItem, đối tượng này sẽ chứa thông số về cơ bản user như: nickname, hostname, username, realname. Ø ProcessClientConnection Lớp này sẽ chòu trách nhiệm xử lý message khi message gởi đến server. Mọi xử lý trong lớp này do hàm DataArrive() xử lý Ø StringProcess Lớp StringProcess là lớp bổ trợ cho việc xử lý chuổi để phân tích message Ø UserConnectionItem Đối tượng này được kế thừa từ NickNameItem lớp này chứa các thông số ChannelItem, đối tượng socket đang phục vụ cho nó. Ø threadIn Lớp này có nhiệm vụ đọc dữ liệu nhập vào mà theo cơ chế multithread để chương trình không bò block Ø threadOut Cũng tương tự như lớp threadIn lớp này có nhiệm vụ xuất message. Để có thêm thông tin chi tiết cho các lớp đối tượng tham khảo danh sách các lớp chat client vàDanh Sách các lớp Server Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụng Kết luận: www.diachiweb.com - Trang 80 Kết luận: Kết quả đạt được: 1. Tìm hiểu được giao thức Internet Relay Chat. 2. Xây dựng chương trình chat client và chat server chuẩn. 3. Chat client có thể kết nối vào chat server chuẩn khác. 4. Chat server có thể làm việc được với chat client chuẩn khác. Việc chưa làm được: 1. Chưa hổ trợ một số chức năng cho người quản trò. 2. Chat client chưa có khả năng chat thông qua proxy server. 3. Giao diện người dùng chưa thân thiện. Phân công công việc: Chung Diệu Tùng: - xây dựng các lớp giao tiếp với server theo giao thức chuẩn. - xây dựng thành phần xử lý sự kiện. Trần Thái Lộc: - xây dựng thành phần giao diện. - xây dựng báo cáo. Hướng phát triển đề tài: Nếu có điều kiện phát triển tiếp tục đề tài em sẽ hoàn thiện thêm chương trình chat client bằng cách thêm vào các tính năng chat thông qua proxy server, multimedia chat và xây dựng chương trình multimedia chat server để giao tiếp với chat client phục vụ nhu cầu ngày càng cao của người sử dụng. Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụng Tài liệu tham khảo: www.diachiweb.com - Trang 81 Tài liệu tham khảo: F Core Java volume I, II Fundamential Cays.Horstmann, Gary Cornbll F Giáo trình lý thuyết và bài tập Java Trần Tiến Dũng F Java How To Program Deitel F Java2 Nguyễn Tiên, Ngô Quốc Việt FRFC 1459, J. Oikarinen, D. Reed – 05/1993 FRFC 2810, C. Kalt – 04/2000 FRFC 2811, C. Kalt – 04/2000 FRFC 2812, C. Kalt – 04/2000 FRFC 2813, C. Kalt – 04/2000 F TCP/IP MCSE Study Guide GregP.Bulette . các lớp chat client vàDanh Sách các lớp Server Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụng Kết luận: www.diachiweb.com - Trang 80 Kết luận: Kết quả đạt được: 1. Tìm hiểu được. nghe và xử lý sự kiện cho form connect. Ø frmDCCChat Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụngChương II: Kiến trúc chương trình: www.diachiweb.com - Trang 77 Lớp frmDCCChat. chat thông qua proxy server Luận văn: Internet Relay Chat Protocol tìm hiểu và ứng dụngChương I: Yêu Cầu Chức Năng &ø Phi Chức Năng www.diachiweb.com - Trang 75 2. Đối với chat

Ngày đăng: 29/07/2014, 00:20

Tài liệu cùng người dùng

Tài liệu liên quan