1. Trang chủ
  2. » Công Nghệ Thông Tin

Bao cao môn lập trình mạng nâng cao

25 201 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 605 KB
File đính kèm Lap trinh nang cao.rar (742 KB)

Nội dung

Hiện nay, mạng Lan đã có những tiến bộ vượt bậc và ngày càng phổ biến hơn trong đồi sống sinh hoat. Điều này làm cho nhu cầu liên lạc và trao đổi thông tin thông qua mạng Lan ngày càng lớn hơn. Chính vì vậy, chương trình Chat trên mạng Lan được xây dựng để đáp ứng phần nào những nhu cầu cấp thiết đó.

Môn lập trình nâng cao Chương 1: MỞ ĐẦU 1.1 Lý chọn đề tài: Hiện nay, mạng Lan có tiến vượt bậc ngày phổ biến đồi sống sinh hoat Điều làm cho nhu cầu liên lạc trao đổi thông tin thông qua mạng Lan ngày lớn Chính vậy, chương trình Chat mạng Lan xây dựng để đáp ứng phần nhu cầu cấp thiết 1.2 Mục đích đề tài: Xây dựng chương trình Chat hoạt động mạng Lan với chức như: gởi tin nhắn, tạo nhóm Chat lưu thông tin bạn bè 1.3 Đối tượng phạm vi nghiên cứu 1.3.1 Đối tượng nghiên cứu Tìm hiểu chế hoạt động Socket Thread NET Framwork từ viết ứng dụng Chat mạng Lan 1.3.2 Phạm vi nghiên cứu Chương trình Chat xây dựng với khả gởi đoạn văn qua lại user thông qua điều khiển Server mạng Lan Chương 2: KIẾN THỨC ỨNG DỤNG 2.1 Sơ lược lập trình Socket: 2.1.1 Khái niệm Địa cổng (Address & Port) Nguyên lý:  Trong máy có nhiều ứng dụng muốn trao ứng dụng khác thông qua mạng (ví dụ có ứng dụng máy A muốn trao đổi với với ứng dụng máy B)  Mỗi máy tính có đường truyền liệu (để gửi nhận) Vấn đề : Rất xảy "nhầm lẫn" liệu từ máy A gửi đến máy B liệu gửi cho ứng dụng máy B? Giải quyết: Mỗi ứng dụng máy B gán số hiệu (mà ta quen gọi cổng : Port), số hiệu cổng từ 65535 Khi ứng dụng máy A muốn gửi cho ứng dụng máy B việc điền thêm số hiệu Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 1- Môn lập trình nâng cao cổng (vào trường RemotePort) vào gói tin cần gửi Trên máy B, ứng dụng việc kiểm tra giá trị cổng gói tin xem có trùng với số hiệu cổng (đã gán – giá trị Localport) hay không? Nếu xử lý, trái lại không làm (vì mình) Như vậy: Khi cần trao đổi liệu cho hai ứng dụng cần phải biết thông tin tối thiểu địa (Address) số hiệu cổng (Port) ứng dụng 2.1.2 Lớp IPAddress Trên Internet trạm (có thể máy tính, máy in, thiết bị …) có định danh nhất, định danh thường gọi địa (Address) Địa Internet tập hợp gồm số có giá trị từ 0-255 cách dấu chấm Để thể địa này, người ta viết dạng sau: Tên : Ví dụ May01, Server, … Địa IP đặt xâu: "192.168.1.1", "127.0.0.1" Đặt mảng byte, byte chứa số từ 0-255 Ví dụ để biểu diễn địa 192.168.1.1 với khai báo “byte[] DiaChi = new byte[4];”, ta viết:  DiaChi(0) = 192;  DiaChi(1) = 168;  DiaChi(2) = 1;  DiaChi(3) = 1; Hoặc số (long), có độ dài byte Ví dụ, với địa 192.168.1.1 giá trị là: 16885952 (đây số hệ thập phân xếp liền byte lại với 00000001 00000001 10101000 11000000 (Byte 0) 168 192 (Byte 3) Như vậy, để đổi địa chuẩn dạng số ta việc tính toán cho thành phần Ví dụ: Đổi địa 192.168.1.2 số, ta tính sau : Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 2- Môn lập trình nâng cao * 256 ^ + 1* 256 ^ + 168 * 256 ^ + 192 * 256 ^ Trong NET, IPAddress lớp dùng để mô tả địa Đây lớp sử dụng thao tác (truyền) vào lớp IPEndpoint, UDP, TCP, Socket … Bảng 2-1: Các thành phần lớp IpAddress Thành viên Static Mô tả Any Cung cấp địa IP (thường 0.0.0.0) để Server phải lắng nghe hoạt động Client tất Card mạng (sử dụng xây dựng Broadcast Server) Thuộc tính đọc Cung cấp địa IP quảng bá (Broadcast, thường Loopback 255.255.255.255), dạng số long Trả địa IP lặp (IP Loopback, ví dụ AddressFamily 127.0.0.1) Trả họ địa địa IP hành Nếu địa dạng IPv4 kết Internetwork, Phương thức IPAddress(Int64) IPAddress(Byte[]) GetAddressByte () HostToNetworkOrder() InternetworkV6 địa IPv6 Mô tả Tạo địa IP từ số long Tạo địa IP từ mảng Byte Chuyển địa thành mảng Byte Đảo thứ tự Byte số cho với thứ tự Byte IsLoopback() địa IPAddress Cho biết địa có phải địa lặp hay không? 2.1.3 Lớp IPEndpoint Trong mạng, để hai trạm trao đổi thông tin với chúng cần phải biết địa (IP) số hiệu cổng mà hai bên dùng để trao đổi thông tin Lớp IPAddress cung cấp cho ta vế địa IP (IPAddress), thiếu vế thứ hai số hiệu cổng (Port number) Như vậy, lớp IPEndpoint lớp chứa đựng IPAddress Port number Đối tượng IPEndpoint dùng sau để truyền trực tiếp cho đối tượng UDP, TCP… Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 3- Môn lập trình nâng cao Bảng 2-2: Các thành viên lớp IpEndPoint Phương thức khởi tạo Mô tả IPEndPoint(Int64, Int32) Tạo đối tượng lớp IPEndPoint, tham số truyền vào địa IP (ở dạng số) IPEndPoint(IPAddress, cổng dùng để giao tiếp Tạo đối tượng lớp IPEndPoint, Int32) Tham số truyền vào địa IPAddress Thuộc tính Address số hiệu cổng dùng để giao tiếp Mô tả Trả thiết lập địa IP cho Endpoint (trả AddressFamily đối tượng IPAddress) Lấy loại giao thức mà Endpoint sử Port Phương thức Create() dụng Lấy gán số hiệu cổng Endpoint Mô tả Tạo Endpoint từ địa socket (socket ToString() address) Trả địa IP số hiệu cổng theo khuôn dạng địa chỉ: cổng Ví dụ: “192.168.1.1:8080” 2.1.4 Lớp UDP Giao thức UDP (User Datagram Protocol hay User Define Protocol) giao thức phi kết nối (connectionless) có nghĩa bên gửi liệu cho bên mà không cần biết bên sẵn sàng hay chưa? (Nói cách khác không cần thiết lập kết nối hai bên tiến hành trao đổi thông tin) Giao thức không tin cậy giao thức TCP tốc độ lại nhanh dễ cài đặt Ngoài ra, với giao thức UDP ta gửi gói tin quảng bá (Broadcast) cho đồng thời nhiều máy Trong NET, lớp UDPClient (nằm namesapce System.Net.Sockets) đóng gói chức giao thức UDP Bảng 2-3: Các thành viên lớp UDPClient Phương thức khởi tạo Mô tả UdpClient () Tạo đối tượng (thể hiện) lớp UDPClient Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 4- Môn lập trình nâng cao UdpClient (AddressFamily) Tạo đối tượng (thể hiện) lớp UDPClient Thuộc dòng địa UdpClient (Int32) UdpClient (IPEndPoint) (AddressFamily) định Tạo UdpClient gắn (bind) cổng cho Tạo UdpClient gắn (bind) IPEndpoint UdpClient(Int32, (gán địa IP cổng) cho Tạo UdpClient gán số hiệu cổng, AddressFamily) UdpClient(String, Int32) AddressFamily Tạo UdpClient thiết lập với trạm từ xa Phương thức BeginReceive() BeginSend() Close() Connect() EndReceive() EndSend() Receive (ref IPEndPoint) mặc định Mô tả Nhận liệu Không đồng từ máy xa Gửi không đồng liệu tới máy xa Đóng kết nối Thiết lập Default remote host Kết thúc nhận liệu không đồng Kết thúc việc gửi liệu không đồng Nhận liệu (đồng bộ) máy xa gửi (Đồng có nghĩa lệnh sau lệnh Receive thực thi Receive nhận liệu Còn chưa nhận – dù chút Send() – chờ (blocking)) Gửi liệu (đồng bộ) cho máy xa 2.1.5 Lớp TCP (TCPClient) Mục đích lớp UDPClient dùng cho lập trình với giao thức UDP, với giao thức hai bên không cần phải thiết lập kết nối trước gửi mức độ tin cậy không cao Để đảm bảo độ tin cậy ứng dụng mạng, người ta dùng giao thức khác, gọi giao thức có kết nối : TCP (Transport Control Protocol) Trên Internet chủ yếu dùng loại giao thức này, ví dụ Telnet, HTTP, SMTP, POP3… Để lập trình theo giao thức TCP, MS.NET cung cấp hai lớp có tên TCPClient TCPListener Bảng 2-4: Các thành phần lớp TcpClient Phương thức khởi tạo Mô tả Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 5- Môn lập trình nâng cao TcpClient() TcpClient(IPEndPoint) Tạo đối tượng TcpClient Chưa đặt thông số Tạo TcpClient gắn cho EndPoint cục (Gán địa máy cục số hiệu cổng để sử dụng TcpClient(String,Int32) trao đổi thông tin sau) Tạo đối tượng TcpClient kết nối đến máy có địa số hiệu cổng truyền vào Các thuộc tính Available Client Connected RemoteHost địa IP chuẩn tên máy Mô tả Cho biết số byte nhận từ mạng có sẵn để đọc Trả Socket ứng với TCPClient hành Trạng thái cho biết kết nối đến Server hay Các hàm thành phần Close() chưa? Mô tả Giải phóng đối tượng TcpClient không đóng kết Connect(RemoteHost, nối Kết nối đến máy TCP khác có Tên số hiệu cổng RemotePort) GetStream() Trả NetworkStream để từ giúp ta gửi hay nhận liệu (Thường làm tham số tạo StreamReader StreamWriter để gửi nhận liệu dạng xâu ký tự) Khi gắn vào StreamReader StreamWriter ta gửi nhận liệu thông qua phương thức Readline, writeline tương ứng lớp Từ thành viên lớp TcpClient ta thấy rằng, việc kết nối thực gửi nhận đơn giản Theo trình tự sau:  Bước 1: Tạo đối tượng TcpClient  Bước 2: Kết nối đến máy chủ (Server) dùng phương thức Connect  Bước 3: Tạo đối tượng StreamReader (Receive)và StreamWriter (Send) "nối" với GetStream cpPClient  Bước 4: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 6- Môn lập trình nâng cao • Dùng đối tượng StreamWriter.Writeline/Write vừa tạo để gửi liệu • Dùng đối tượng StreamReader.Readline/Read vừa tạo để đọc liệu  Bước 5: Đóng kết nối Nếu muốn gửi/nhận liệu mức byte (nhị phân) dùng NetworkStream (truyền GetStream cho NetworkStream) 2.1.6 Lớp TcpListener TCPListerner lớp cho phép người lập trình xây dựng ứng dụng Server (Ví dụ SMTP Server, FTP Server, DNS Server, POP3 Server hay server tự định nghĩa ….) Ứng dụng server khác với ứng dụng Client chỗ luôn thực lắng nghe chấp nhận kết nối đến từ Client Bảng 2-5: Các thành phần lớp TcpListener Phương thức khởi tạo Mô tả TcpListener ( Int32) Tạo TcpListener lắng nghe cổng TcpListener (IPEndPoint) định Tạo TcpListener với giá trị Endpoint truyền TcpListener(IPAddress,Int32) vào Tạo TcpListener lắng nghe kết nối Phương thức AcceptSocket( ) AcceptTcpClient() đến địa IP cổng định Mô tả Chấp nhận yêu cầu kết nối chờ Chấp nhận yêu cầu kết nối chờ (Ứng dụng dừng lệnh có Pending() Start() Stop() kết nối đến – “Blocking”) Cho biết liệu có kết nối chờ đợi không Bắt đầu lắng nghe yêu cầu kết nối Dừng việc nghe Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 7- Môn lập trình nâng cao Chương 3: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH 3.1 Phân tích 3.1.1 Phân tích nhu cầu thực tiễn: Hiện nay, mạng Lan phát triển mạnh trường học, quan tổ chức hộ gia đình Chính điều kéo theo nhu cầu liên lạc trao đổi thông tin mạng Lan phát triển theo Chính vậy, chương trình Chat phục vụ cho nhu cầu liên lạc, trao đổi thông tin mạng Lan cần thiết 3.1.2 Yêu cầu đề ra: Yêu cầu đặt xây dựng chương trình Chat hoạt động mạng Lan sử dụng Socket Multithreading đòi hỏi chức nghiệp vụ sau: Chat hai người với nhau: Hai người gởi thông điệp qua lại cho Chat nhóm người: Một người đứng tạo nhóm Chat mời thành viên khác tham gia thảo luận Một User có khả thêm xóa người vào Friend List để liên lạc cách dể dàng 3.1.3 Mô hình liệu mức quan niệm: Hình 3-1: Mô hình liệu mức quan niệm Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 8- Môn lập trình nâng cao 3.1.4 Phân tích thành phần xữ lý: 3.1.4.1 Các xử lý liên quan đến đăng nhập Xử lý đăng nhập:  Mô hình xử lý: Đăng nhập thành công Hình 3-2: Mô hình xử lý đăng nhập  Mô tả: Khi User yêu cầu đăng nhập hệ thống, Client gởi Username Password cho Server Server kiểm tra Username Password có hợp lệ hay không Sau đó, Server kiểm tra Username đăng nhập chưa Nếu đăng nhập thành công, Server lấy danh sách Friend Offline Online User kèm theo danh sách tin nhắn Offline (nếu có) gởi cho User cập nhật lại trạng thái đăng nhập User Đồng thời gởi thông báo đến Users khác có Friend User Online Xử lý đăng xuất:  Mô hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 9- Môn lập trình nâng cao Người dùng đăng xuất khỏi chương trình Hình 3-3: Mô hình xử lý đăng xuất  Mô tả: Khi User yêu cầu đăng xuất lại hệ thống, Client hiển thị lại hình đăng nhập đồng thời gởi thông báo xuất đến Server Server gởi thông báo đăng xuất tới Users có Friend User Bên cạnh đó, Server kiểm tra tất Groups mà User tham gia Server gởi thông báo hủy đến Group mà User người khởi tạo gởi thông báo đăng xuất đến Group mà User tham gia với tư cách thành viên Cuối cùng, Server cập nhật lại trạng thái đăng nhập User 3.1.4.2 Các xử lý việc gởi tin nhắn Gởi tin nhắn Online:  Mô hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 10- Môn lập trình nâng cao Gởi ti n nhắn Online Hình 3-4: Mô hình xử lý gởi tin nhắn Online  Mô tả: Khi người dùng nhập tin nhắn nhấn phím Enter (hoặc button Send), Client hiển thị tin nhắn Tab Chat đồng thời gởi tin nhắn tên người nhận lên cho Server Server kiểm tra xem người nhận có phải Online hay không Nếu người nhận Online, Server gởi tin nhắn tên người gởi Khi nhận tin nhắn, Client hiển thị tin nhắn thông qua Tab Chat (Tab mở chưa có trước đó) Gởi tin nhắn Offline:  Mô hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 11- Môn lập trình nâng cao Gởi tin nhắn Offline Hình 3-5: Mô hình xử lý gởi tin nhắn Offline  Mô tả: Khi người dùng nhập tin nhắn nhấn phím Enter (hoặc button Send), Client hiển thị tin nhắn Tab Chat đồng thời gởi tin nhắn tên người nhận lên cho Server Server kiểm tra xem người nhận có phải Online hay không Nếu người nhận Offline, Server lưu tin nhắn tên người gởi vào bảng OfflineMessage để gởi cho người nhận lần đăng nhập 3.1.4.3 Các xử lý FriendList Thêm Friend vào FriendList:  Mô hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 12- Môn lập trình nâng cao Thêm Friend vào Fri endList Hình 3-6: Mô hình xử lý thêm Friend  Mô tả: Khi người dùng chọn chức thêm Friend vào FriendList, hình thêm FriendList mở Người dùng nhập tên Friend sau Client gởi tên Friend lên cho Server Trước tiên, Server kiểm tra Friend có tồn hay không Tiếp theo, kiểm tra Friend thêm vào FriendList trước hay chưa Nếu Friend chưa có FriendList, Server thêm Friend vào FriendList người dùng Cuối cùng, Server gởi kết công việc cho Client Dựa vào kết nhận được, Client thông báo cho người dùng biết việc thêm thành công hay thất bại (có hai nguyên nhân thất bại Friend không tồn Friend có FriendList rồi) Xóa Friend khỏi FriendList:  Mô hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 13- Môn lập trình nâng cao Xóa Friend khỏi FriendList Hình 3-7: Mô hình xử lý xóa Friend  Mô tả: Khi người dùng chọn chức xóa Friend vào FriendList, hình thêm FriendList mở Người dùng nhập tên Friend sau Client gởi tên Friend lên cho Server Trước tiên, Server kiểm tra Friend có tồn hay không Tiếp theo, kiểm tra Friend thêm vào FriendList trước hay chưa Nếu Friend có FriendList, Server xóa Friend khỏi FriendList người dùng Cuối cùng, Server gởi kết công việc cho Client Dựa vào kết nhận được, Client thông báo cho người dùng biết việc Xóa thành công hay thất bại (có hai nguyên nhân thất bại Friend không tồn Friend chưa có FriendList) đồng thời cập nhật lại hình cần  Ghi chú: Chức gọi người dùng nhấn phím Delete Listbox FriendList 3.1.4.4 Các xử lý Group Chat Khi User tạo Group:  Mô hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 14- Môn lập trình nâng cao T ạo Group Hình 3-8: Mô hình xử lý tạo Group  Mô tả: Khi người dùng chọn chức Invite Group hình tạo Group xuất Người dùng nhập danh sách Users muốn mời nhập thêm Invite Message nhấn Invite Client tự phát sinh tên Group gởi kèm với danh sách Users muốn mời đồng thời mở thêm Tab Group Chat Server lọc Users Online danh sách Users mời Sau đó, Server gởi lời mời kèm theo tên người mời đến Users mời Khi User đồng ý gia nhập Group:  Mô hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 15- Môn lập trình nâng cao Đồng ý gia nhập Group Hình 3-9: Mô hình xử lý đồng ý gia nhập Group  Mô tả: Khi người dùng đồng ý lời mời gia nhập nhóm, Client gởi thông báo đồng ý cho Server Server kiểm tra xem Group lưu hay chưa (Group chưa lưu chưa có người dùng đồng ý tham gia) Sau đó, Server lưu người dùng vào GroupDetail Cuối cùng, Server gởi tên tất Users tham gia Group cho người dùng, đồng thời gởi thông báo đến cho Users Group người dùng đồng ý gia nhập nhóm Khi User thoát khỏi Group:  Mô hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 16- Môn lập trình nâng cao Rời khỏi Group Hình 3-10: Mô hình xử lý thoát khỏi Group  Mô tả: Khi người dùng tắt Tab Group Chat, Client gởi thông báo thoát khỏi Group cho Server Server trước tiên kiểm tra người dùng có phải người tạo Group hay không Nếu không phải, Server gởi thông báo tới Users khác Group Cuối cùng, Server cập nhật lại GroupDetail Khi User hủy Group:  Mô hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 17- Môn lập trình nâng cao Hủy Group Hình 3-11: Mô hình xử lý hủy Group  Mô tả: Khi người dùng tắt Tab Group Chat, Client gởi thông báo thoát khỏi Group cho Server Server trước tiên kiểm tra người dùng có phải người tạo Group hay không Nếu đúng, Server gởi thông báo hủy Group tới Users khác Group Cuối cùng, Server xóa Group khỏi GroupDetail GroupChat  Ghi chú: Khi nhận thông báo hủy Group từ Users, Client tắt Tab Group Chat tương ứng đồng thời thông báo cho người dùng Khi User gởi tin nhắn tới thành viên Group:  Mô hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 18- Môn lập trình nâng cao Gởi tin nhắn Group Hình 3-12: Mô hình xử lý gởi tin nhắn Group  Mô tả: Khi người dùng nhập tin nhắn nhấn button Send Tab Group Chat, Client gởi tin nhắn tên Group cho Server Dựa vào tên Group nhận được, Server tìm tất Users tham gia Group gởi tin nhắn kèm theo tên người gởi đến Users 3.2 Thiết kế liệu 3.2.1 Chuẩn hóa liệu:  Users (ID, Username, Password, State, Fullname, Email, Address)  FriendList(UserID, FriendID)  OfflineMessage(UserID, SenderID, SendTime, Message)  GroupChat(GroupID, UserID, GroupName, CreateTime)  GroupDetail(FriendID, GroupID) Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 19- Môn lập trình nâng cao 3.2.2 Mô hình liệu mức vật lý: Hình 3-13: Mô hình liệu mức vật lý 3.2.3 Thiết kế liệu: Gồm có bảng Users, FriendList, OfflineMessage, GroupChat, GroupDetail để lưu trử thông tin user để đăng nhập, quan hệ user, lưu tin nhắn offline user lưu tạm thời thông tin nhóm Chat Table Users  Chức năng: Lưu thông tin User  Danh sách thuộc tính: Bảng 3-6: Table Users STT Tên thuộc tính ID Username Password State Fullname Email Address Table FriendList Kiểu liệu int (4) varchar (20) varchar (15) bit (1) nvarchar (50) varchar (30) nvarchar (50) Diễn giải Tự động tăng, Khóa Tên đăng nhập Mật đăng nhập Trạng thái User Tên đầy đủ User Email User Địa User  Chức năng: Lưu thông tin quan hệ User Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 20- Môn lập trình nâng cao  Danh sách thuộc tính: Bảng 3-7: Table FriendList STT Tên thuộc tính Kiểu liệu UserID int (4) FriendID int (4) Table OfflineMessage Diễn giải ID User, Khóa ID Friend, Khóa  Chức năng: Lưu tin nhắn offline User  Danh sách thuộc tính: Bảng 3-8: Table OfflineMessage STT Tên thuộc tính Kiểu liệu UserID int (4) SenderID int (4) SendTime datetime (8) Diễn giải ID người nhận, Khóa ID người gởi, Khóa Thời điểm gởi tin nhắn, Khóa Nội dung tin nhắn Message Table GroupChat nvarchar (500)  Chức năng: Lưu tạm thời thông tin nhóm Chat  Danh sách thuộc tính: Bảng 3-9: Table GroupChat STT Tên thuộc tính Kiểu liệu GroupID int (4) UserID int (4) GroupName varchar (20) CreateTime datetime (8) Table GroupDetail Diễn giải Tự động tăng, Khóa ID User tạo nhóm Tên nhóm Thời điểm tạo nhóm  Chức năng: Lưu thông tin chi tiết nhóm Chat  Danh sách thuộc tính: Bảng 3-10: Table GroupDetail STT Tên thuộc tính Kiểu liệu GroupID int (4) FriendID int (4) Diễn giải ID Group, Khóa ID của User thành viên Group, Khóa 3.2.4 Mô tả ràng buộc toàn vẹn: Ràng buộc 1: Username Table Users không trùng Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 21- Môn lập trình nâng cao Ràng buộc 2: UserID FriendID Table FriendList phải tồn Table Users Ràng buộc 3: UsersID Table GroupChat phải tồn Table Users Ràng buộc 4: GroupID Table GroupDetail phải tồn Table GroupChat Ràng buộc 5: FriendID Table GroupDetail phải tồn Table Users Ràng buộc 6: SenderID UserID Table OfflineMessage phải tồn Table Users 3.3 Thiết kế giao diện 3.3.1 Màn hình đăng nhập Hình 3-14: Màn hình đăng nhập Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 22- Môn lập trình nâng cao 3.3.2 Màn hình Hình 3-15: Màn hình 3.3.3 Màn hình thêm Friend Hình 3-16: Màn hình thêm Friend Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 23- Môn lập trình nâng cao 3.3.4 Màn hình xóa Friend Hình 3-17: Màn hình xóa Friend 3.3.5 Màn hình Chat With Hình 3-18: Màn hình Chat With Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 24- Môn lập trình nâng cao 3.3.6 Màn hình Invite Group Hình 3-19: Màn hình Invite Group 3.3.7 Màn hình Invite Another Hình 3-20: Màn hình Invite Another TÀI LIỆU THAM KHẢO Tài liệu: [1] Dương Quang Thiện, 2005, NET toàn tập [2] Nguyễn Ngọc Bình Phương, 2005, Các giải pháp lập trình C# Các trang Web [1] http://www.codeproject.com Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 25- ... 22- Môn lập trình nâng cao 3.3.2 Màn hình Hình 3-15: Màn hình 3.3.3 Màn hình thêm Friend Hình 3-16: Màn hình thêm Friend Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 23- Môn lập trình nâng. .. PGS TS Huỳnh Công Pháp -Trang 7- Môn lập trình nâng cao Chương 3: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH 3.1 Phân tích 3.1.1 Phân tích nhu cầu thực tiễn: Hiện nay, mạng Lan phát triển mạnh trường học,... hình xử lý: Giảng viên hướng dẫn: PGS TS Huỳnh Công Pháp -Trang 9- Môn lập trình nâng cao Người dùng đăng xuất khỏi chương trình Hình 3-3: Mô hình xử lý đăng xuất  Mô tả: Khi User yêu cầu đăng

Ngày đăng: 27/10/2017, 08:37

HÌNH ẢNH LIÊN QUAN

Bảng 2-2: Các thành viên của lớp IpEndPoint - Bao cao môn lập trình mạng nâng cao
Bảng 2 2: Các thành viên của lớp IpEndPoint (Trang 4)
Bảng 2-4: Các thành phần của lớp TcpClient - Bao cao môn lập trình mạng nâng cao
Bảng 2 4: Các thành phần của lớp TcpClient (Trang 5)
3.3.1 Màn hình đăng nhập - Bao cao môn lập trình mạng nâng cao
3.3.1 Màn hình đăng nhập (Trang 22)
3.3.2 Màn hình chính - Bao cao môn lập trình mạng nâng cao
3.3.2 Màn hình chính (Trang 23)
3.3.4 Màn hình xóa Friend - Bao cao môn lập trình mạng nâng cao
3.3.4 Màn hình xóa Friend (Trang 24)
3.3.6 Màn hình Invite Group - Bao cao môn lập trình mạng nâng cao
3.3.6 Màn hình Invite Group (Trang 25)

TỪ KHÓA LIÊN QUAN

w