P. 1
Bao Cao Do An

Bao Cao Do An

|Views: 190|Likes:
Được xuất bản bởiThan Sau

More info:

Published by: Than Sau on Nov 07, 2011
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/01/2014

pdf

text

original

ĐẠI HỌC QUỐC GIA TP.

HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Lớp WINP1.B21 – Nhóm 26

BÁO CÁO ĐỒ ÁN LẬP TRÌNH TRÊN WINDOWS
ĐỀ TÀI Xây Dựng Chương Trình LAN Chat
GIÁO VIÊN HƯỚNG DẪN: THS.PHẠM THI VƯƠNG NHÓM SINH VIÊN THỰC HIỆN: NGÔ DUY KHÁNH (09520414) NGUYỄN TRỌNG NHÂN (09520425) VĂN PHÚ HIẾU (09520409)

TP. HỒ CHÍ MINH, 6/2011

Mục Lục
I- Giới thiệu về .Net Remoting: ................................................................................ 2 1/ .Net Remoting ...................................................................................................... 2 2/ .NET Remoting so với Web Services .................................................................. 2 3/ Remote Objects trong .NET Remoting ................................................................ 3 4/ Domain ................................................................................................................. 4 5/ Channel ................................................................................................................. 4 6/ Object Activation: ................................................................................................ 4 7/ Client Activated Objects: ..................................................................................... 5 8/ Tạo một Remotable Object: ................................................................................. 6 II- Giới thiệu về Socket: .............................................................................................. 6 1/ Socket ................................................................................................................... 6 2/ Chức năng ............................................................................................................. 7 3/ Phân loại ............................................................................................................... 7 4/ Thành phần ........................................................................................................... 7 5/ Các chế độ giao tiếp ............................................................................................. 9 6/ Xây dựng ứng dụng Client-Server với Socket ................................................... 10 IIIChương trình LAN Messenger: ...................................................................... 13 1/ Tổng quan các Form trong chương trình .............................................................. 13 2/ Các thư viện kèm theo chương trình .................................................................... 14 3/ Các kỹ thuật dùng trong chương trình .................................................................. 14 4/ Các tính năng đã làm được cho một chương trình Chat qua mạng LAN ............. 14 5/ Các tính năng chưa làm được, sẽ cải thiệt hoặc phát triển ở các phiên bản kế tiếp .................................................................................................................................. 15 6/ Hướng dẫn sử dụng chương trình: ........................................................................ 15 IVTài liệu tham khảo: .......................................................................................... 25

1

Các đối tượng của các ứng dụng này có thể được thiết lập trên cùng một máy tính hay các máy tính khác nhau và được giao tiếp từ xa thông qua các giao thức kết nối như HTTP.I. 2 . có nghĩa là nó không lưu lại bất kì trạng thái gì của lần gọi trước và nó cũng không biết gì về phía client đang thực hiện request..NET Remoting và Web Serices.1 cùng với Webservice. chúng cũng là những nhân tố để ta chọn lựa giữa 2 công nghệ này: • ASP. HTTP. 2. Web Services cho phép các ứng dụng có thể giao tiếp với nhau mà không phụ thuộc platform. Client và server Web Services chỉ có thể trao đổi với nhau bằng các thông điệp SOAP.NET Web Services chỉ có thể được truy xuất qua HTTP còn .Net Remoting: 1. TCP.Giới thiệu về . Những điều sau đây là các điểm khác nhau chính giữa .Net Remoting: .Net Remoting được giới thiệu từ . Cung cấp các kĩ thuật cho phép một đối tượng này truy xuất đến một đối tượng khác nằm ở các Application Domain khác nhau. ngôn ngữ lập trình.Net Framework 1. … Tuy nhiên Web Services là một môi trường “stateless”.Net Remoting là cơ chế giao tiếp giữa các đối tượng (object) mà không cùng thuộc một Process.. Microsft .NET Remoting so với Web Services: Về khía cạnh xử lý từ xa thì Web Services hoàn toàn tương tự như .NET Remoting trở thành 1 Web Services bằng cách host nó trong IIS. Thậm chí người ta có thể làm cho .NET Remoting.NET Remoting có thể được dùng trên nhiều giao thức khác nhau như TCP. Giúp các lớp đối tượng thuộc các ứng dụng khác nhau có thể liên lạc được với nhau.

đồng thời có hỗ trợ callbacks. Khi có một request từ phía client. Đó là Singleton và Singlecall.SingleCall. Web Services serialize các đối tượng thành XML bên trong SOAP message và vì thế có thể truyền tải thông tin của bất cứ thành phần nào miễn có thể chuyển thành XML.• • • Web Services là một môi trường stateless. trả lời cho client.Singleton. nhu cầu của ứng dụng mà server có thể khai báo theo cơ chế WellKnownObjectMode.NET application. khi khai báo Remote Object là Singleton thì Remote Object sẽ được khởi tạo và hủy đi đối với mỗi lần nhận request từ phía Client. Singleton Object: Ngược lại với Single Call. Cơ chế này tương tự như mô hình . 3. Đến khi nào process chạy chương trình Server kết thúc thì instance này mới bị trình hốt rác Garbage Collection hốt đi. sau đó Object này vẫn được lưu lại chứ không bị hủy đi. có hai cơ chế để tạo instance của Remote Object rồi từ đó thực thi request. Remote Object có thể được dẫn xuất từ MarshalByRefObject hay sử dụng [Serializable] tag hoặc bằng cách tạo các giao diện ISerializable. Ngoài ra theo như giới thiệu thì . Khi một Client gửi một request tới Server sử dụng toán tử “new”. Tùy vào mục đích sử dụng. một thông điệp sẽ được gửi tới - - 3 . Single Call Object: Remote Object sẽ được sinh ra.NET Remoting lại hỗ trợ nhiều lựa chọn state management và có thể thực hiện nhiều request từ một client. sẽ có một object mới được tạo ra để thực hiện request đó trên server. Tuy nhiên nếu các đối tượng lại thuộc những ứng dụng khác nhau (các Application domain khác nhau) thì cần có những Remote Object để giao tiếp với nhau. đây có thể được coi là Local Objects.NET Remoting: Nếu như ở một chương trình đơn thì các đối tượng sẽ cùng thuộc trong ứng dụng đó. chúng chỉ được kích hoạt mỗi khi có request đến từ Client. Client-Activated Objects (CAO): Thuộc kiểu “Server-side object”. hay WellKnownObjectMode. Các loại Remote Object: Trong . Còn .NET Remoting thì tùy giao thức và định dạng message mà nó có thể truyền đi thông tin như thế nào.NET Remoting có cho phép đối tượng được truyền vào theo cả kiểu tham chiếu(reference) và tham trị (value) Web services có thể hoạt động trên các platform môi trường khác nhau trong khi .NET Remoting.NET Remoting yêu cầu phía clients phải là . và chúng dễ dàng giao tiếp được với nhau. thực thi request.Remote Objects trong . Còn đối với .NET Webservice truyền thống.

Server sau đó sẽ tạo ra một Instance của lớp được yêu cầu.Không thể đăng ký các Channel khác nhau trên cùng một port thuộc cùng một máy tính mặc dù các Channel này có thể ở các Application Domai khác nhau. Khi một Client yêu cầu tạo ra các Remote Object thì chỉ các proxy cục bộ được tạo ra ở Client. Các Remote Object này sẽ được khởi tạo ở lần đầu tiên Client thiếp lập cuộc gọi cho Server. . và trả về một ObjRef cho Client Application. một tiến trình được tạo ra.Channel: Trong kĩ thuật . ứng dụng này sẽ được nạp vào Application Domain. Các nguyên tắc khi thiết lập một Channel: Cần có ít nhất một Channel được đăng ký với . 4 .NET Remoting trước khi Remote Object được gọi. Như giới thiệu phía trên thì có hai channel chính là TcpChannel và HttpChannel tương ứng với các giao thức TCP và HTTP.Object Activation: Server Actived Object chỉ được tạo ra ở lần đầu tiên Client thiết lập cuộc gọi tới các Remote Method.NET. một miền ứng dụng (Application Domain) cũng được tạo ra.. Hay nói cách khác. Channel sẽ truyền tải những message từ hai phía. 5. Một Object từ Client sẽ thông qua Channel để giao tiếp với Object phía server.Client liên lạc với Remote Object thông qua các kênh đã đăng ký bằng việc gọi các RegisterChannel trên lớp ChannelService. khi một ứng dụng được nạp vào trong bộ nhớ. Các Application Domain có thể cùng thuộc một process hoặc khác process.Remote Application. Trên thực tế.NET Remoting thì Channel được hiểu như là một kênh để giao tiếp giữa client và server.Channel được đăng ký trong mỗi Application Domain hoặc nhiều Application Domain thuộc một Process. 4. Mỗi ứng dụng có thuộc các Application Domain khác nhau. vì thế nếu chúng muốn giao tiếp được với nhau thì phải sử dụng Remoting chứ không thể giao tiếp trực tiếp với nhau được. còn Remote Object thực tế nằm trên Server. Khi thiết lập nhiều Channel trên cùng một máy tính thì chúng cần listen ở các port khác nhau. Và các Channels này cần đăng ký trước các Remote Object. .Domain: Trong . Ví dụ tạo ra các Proxy như sau: . . Khi Process kết thúc thì các Channel này cũng tự động được hủy đi.. TcpChannel và HttpChannel đều có khả năng extend thành những Custom Channel. và trong quá trình này. Ngoài ra. 6.

Như đã nói ở trên. // On the Client RemotingConfiguration. . WellKnownObjectMode..Client Activated Objects: Đối tượng Client Activated Object được tạo ra mỗi trên Server ngay lập tức mỗi khi có request từ Client hoặc cũng có thể tạo ra bằng từ khóa new hoặc Activator.. typeof(RemoteServerObject).RegisterActivatedServiceType(typeof(RemoteObjectCAO))..CreateInstance(…). ..SingleCall). // Trên Client IRemoteCom obj = (IRemoteCom)Activator. WellKnownObjectMode. chúng ta có hai cơ chế để tạo instance của Remote Object là Single Call và Singleton. RemotingConfiguration. 7.GetObject(typeof(IRemoteCom). WellKnownObjectMode. và bất kỳ thay đổi của Client cũng sẽ “visible” (hiện hữu) với những 5 . // On the Server RemotingConfiguration.SingleCall). Tùy thuộc vào hoàn cảnh và nhu cầu mà ta sử dụng loại khác nhau.// Trên Server RemotingConfiguration.. "tcp://localhost:1002/Test").. typeof(RemoteServerObject). .. ..RegisterWellKnownServiceType( "Test". RemotingConfiguration. "tcp://localhost:1002/TestCAO").RegisterWellKnownServiceType( typeof (RemoteServerObject)..RegisterActivatedClientType(typeof(RemoteObjectCAO).RegisterWellKnownServiceType( "Test". Đoạn mã ví dụ của nó như sau: RemotingConfiguration. obj = new RemoteObjectCAO().ApplicationName = "TestCAO". "Test". Ví dụ: Singleton object được dùng để tham chiếu đến những đối tượng cùng trên một server... .Singleton). ..

Client khác.Tạo một Remotable Object: Một Remote Object là một đối tượng được kế thừa từ lớp MarshalByRefObject. Socket 6 . Một socket 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 socket trên máy cung cấp dịch vụ.MessageString = message. read(). Socket được giới thiệu lần đầu tiên trong ấn bản UNIX .Chúng ta sử dụng Client Activation nếu đối đượng cần phải được duy trùy trạng thái kết nối liên tục. close() . khi một chương trình thay thì các Client Program khác cũng biết được. send().BSD 4. Ta Add thêm lớp có tên MarshalByRefObject như đã nói ở trên. bind().Giới thiệu về Socket: 1. Ngày nay. receive(). write().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ương trình yêu cầu dịch vụ ( client) và một chương trình cung cấp dịch vụ (server) trên mạng LAN. Một khi socket đã được thiết lập phù hợp. WAN hay Internet và đôi lúc là giữa những quá trình ngay bên trong máy tính.GetInstance(). Khai báo using System. Ví dụ: MyRemotableObject. dưới dạng các hàm hệ thống theo cú pháp ngôn ngữ C (socket().2.Runtime. 8.Chúng ta sử dụng SingleCall khi muốn cung cấp một môi trường “stateless” (Kiểu giống của Web services truyền thống. khi tạo một lớp thư viện mới. Mỗi socket có thể được xem như một điểm cuối trong một kết nối. } } } II.cs namespace RemotableObjects { public class MyRemotableObject : MarshalByRefObject { public MyRemotableObject() { } public void SetMessage(string message) { Cache.Remoting để có thể sử dụng được các TcpChannel hay HttpChannel. trao đổi thông tin với các client khác. Trong C#.. connect().). . Ví dụ như trong hệ điều hành Windows. Dữ liệu sẽ được lưu trên máy chủ và được truy cập bởi tất cả các Client .. hai máy tính có thể trao đổi dịch vụ và dữ liệu.

Phân loại: Có các loại Socket chính là: + Socket kiểu AF_UNIX chỉ cho phép giao tiếp giữa các tiến trình trong cùng một máy tính. Tiến trình còn lại cũng 7 . + Socket kiểu AF_INTET cho phép giao tiếp giữa các tiến trình trên nhưng máy tính khác nhau trên mạng.Số hiệu cổng (Port Number) của Socket Để có thể thực hiện các cuộc giao tiếp. Java. C++. Linux và được sử dụng trong nhiều ngôn ngữ lập trình khác nhau: như C.1. Khi tiến trình được gán một số hiệu cổng (Server). 3. Phân loại theo kiểu kết nối: + Socket hướng kết nối (TCP Socket) + Socket không hướng kết nối (UDP Socket) 4. nó có thể nhận dư liệu gởi đến cổng này từ tiến trình khác (Client). . Visual Basic. C#. 2.được hỗ trợ trong hầu hết các hệ điều hành như MS Windows (WinSock).Chức năng: Socket cho phép thiết lập các kênh giao tiếp mà hai đầu kênh được xác định bởi hai cổng (port). Visual C++ . Mỗi cổng giao tiếp thể hiện một địa chỉ xác định trong một hệ thống. một trong hai tiến trình phải cho biết số hiệu cổng của socket mà mình sử dụng.Thành phần: 4. . Thông qua các cổng này một tiến trình có thể nhận và gởi dữ liệu với các tiến trình khác.

uit. + Số hiệu cổng gán cho Socket phải là duy nhất trên phạm vi máy đó.2.139 hay là địa chỉ theo dạng domain như www. 4.69.yêu cầu tạo ra một socket. Trong hình trên.vn.Địa chỉ IP Ngoài số hiệu cổng. Trong khi số hiệu cổng dùng để phân biệt các quá trình khác nhau trên cùng một máy tính thì IP dùng để phân biệt các máy tính khác nhau trên cùng một mạng TCP/IP. địa chỉ của tiến trình B1 được xác định bằng 2 thông tin: (Host B. Trong đó các cổng từ 1-1023 được gọi là cổng hệ thống được dành riêng cho các tiến trình của hệ thống.123.edu. Port B1) + Địa chỉ máy tính có thể là địa chỉ IP dạng 118. hai bên giao tiếp còn phải biết địa chỉ IP của nhau. Số hiệu cổng 21 23 25 80 110 Quá trình hệ thống Dịch vụ FTP Dịch vụ telnet Dịch vụ mail (SMTP) HTTP Mail (POP3) 8 . có giá trị trong khoảng từ 0-65535 (16 bits).

443 HTTPS 5. 9 . + Dữ liệu được gởi đi không đảm bảo: Không kiểm tra lỗi. Nó có thể hoạt động theo hai chế độ: + Giao tiếp có nối kết. Socket là giao diện giữa chương trình và lớp vận chuyển. không đảm bảo thứ tự đến của các gói tin. Chế độ không nối kết + Không tồn tại kênh giao tiếp ảo giữa hai bên. Nó cho phép ta chọn giao thức sử dụng ở tầng vận chuyển là TCP hay UDP cho chương trình ứng dụng của mình. đảm báo thứ tự của các gói tin.Các chế độ giao tiếp: Xét kiến trúc của hệ thống mạng TCP/IP Tầng vận chuyển (Transport Layer) giúp chuyển tiếp các thông điệp giữa các chương trình với nhau. tốc độ truyền nhanh. + Dữ liệu chính xác nhưng tốc độ truyền chậm. truyền lại gói tin lỗi hay mất. Bảng so sánh sự khác biện giữa hai chế độ giao tiếp có kết nối và không kết nối. + Giao tiếp không kết nổi. không phát hiện và truyền lại gói tin bị lỗi hay mất. Chế độ có nối kết + Tồn tại kênh giao tiếp ảo giữa hai bên giao tiếp. nếu sử dụng giao thức UDP. + Dữ liệu được gởi đi theo bảo đảm: có kiểm tra lỗi. + Dữ liệu không chính xác. nếu giữa chúng sử dụng giao thức TCP.

19. } } catch (Exception ex) { UpdateStatus(ex. là các ví dụ điển hình.Tcp). 4. listener. Chúng ta sẽ tìm hiểu về các bước cơ bản trong việc xây dựng các ứng dụng Client-Server sử dụng Socket làm phương tiện giao tiếp theo chế độ hướng kết nối (được ứng dụng trong phần gởi file và gởi hình ảnh trong chương trình). 10. 21.BeginAccept(new AsyncCallback(AcceptCallback).WaitOne(). FTP. 11. 8.Any. 18. 3.Stream. 6. 5.6. 2. 15. listener. public void StartListening() { byte[] bytes = new Byte[1024]. 12. } } 10 . Mail. 13. while (true) { allDone. 9.. 7. allDone. Các ứng dụng trên Internet như Web. 14. gán số hiệu cổng và lắng nghe các kết nối. Socket listener = new Socket(AddressFamily.InterNetwork. 1. 20. Mô hình Client-Server sử dụng Socket ở chế độ có kết nối (TCP) Giai đoạn 1: Server tạo Socket.Bind(ipEnd). 17. .Listen(100). 16.Xây dựng ứng dụng Client-Server với Socket: Socket là phương tiện hiệu quả để xây dựng các ứng dụng theo kiến trúc Client-Server. 6565). IPEndPoint ipEnd = new IPEndPoint(IPAddress. try { listener.Message). SocketType. listener).Reset(). ProtocolType.

GetBytes(fName). clientSock..Ta thấy Server đã khởi tạo một Socket gồm IP và port 6565 và sẵn sàng lắng nghe kết nối trên cổng 6565 từ Client. 4). fileData.Length).ReadAllBytes(txtFileLink.Text = "Đang truyền tải dữ liệu. Làm ơn đợi.Text = "File đã được chuyển đi thành công!". fileNameLen. fileName. 11. 6565).Client yêu cầu khởi tạo một socket để sử dụng các dịch vụ của tầng vận chuyển.".Length).Text). 4. 11 . 2. 4 + fileName. 16. 3. hệ thống sẽ kiểm tra xem port nào còn trống sẽ tự động gán cho socket của Client. ProtocolType. .. 10. 6565).InterNetwork. lblStatus. 14.Stream.CopyTo(clientData.CopyTo(clientData. // độ dài tên file clientData = new byte[4 + fileName. 9. clientSock. clientSock.Tcp). SocketType.UTF8.CopyTo(clientData.. 12. 5.Text = "Đang kết nối tới người nhận.Send(clientData).Tcp). 15. } 7.Length + fileData.". 6. 0).Connect(IP..Client gởi yêu cầu kết nối đến Server có địa chỉ IP và port xác định: clientSock. lblStatus. Giai đọan 2: Client tạo Socket. // IP máy đích lblStatus. byte[] fileName = Encoding.GetBytes(fileName. SocketType. .Length]. // tên file byte[] fileData = File.InterNetwork. yêu cầu thiết lập một nối kết với Server 1. Socket clientSock = new Socket(AddressFamily.Stream. ProtocolType. // dữ liệu byte[] fileNameLen = BitConverter. 17. 8. EventArgs e) { Socket clientSock = new Socket(AddressFamily. 13.Close().Connect(IP. private void btnSend_Click(object sender.

Trong quá trình này.Sau khi Server chấp nhận kết nối của Client. khi đó một kênh giao tiếp ảo được hình thành. Server đợi Clinet gởi yêu cầu đến. Ở đây. Giai đoạn 4: Kết thúc phiên làm việc Sau khi dữ liệu đã gởi xong. và kênh ảo kết nối với Server sẽ bị đóng. Như vậy. Client và Server có thể trao đổi thông tin với nhau..Sau khi chấp nhận yêu cầu kết nối. Client dùng clientSock. Server tiến hàng chuyển đổi dữ liệu nhận được là các byte dữ liệu thành tên của file mà Client đã gởi và dữ liệu của file. giữa Client và Server sẽ liên tục trao đổi thông tin với nhau về các các dữ liệu đã nhận được. client sẽ gởi yêu cầu hủy kết nối clientSock. tuân thủ theo các quy tắc của giao thức đã xác lập từ trước. 12 .Send(clientData)gởi lần lượt các byte của dữ liệu lên Server.Close(). toàn bộ quá trình sẽ diễn ra như sau. Giai đọan 3: Trao đổi thông tin giữa Client và Server . Sau khi nhận được dữ liệu từ Client.

Thêm một bạn chat vào danh sách bạn bè. Giao diện cửa sổ chat. Thông tin tác giả. Giao diện chức năng gửi file bên người nhận. Music. Thay đổi mật khẩu. Xóa nick chat ra khỏi list. Xem lại lịch sử chat của nick hiện hành. Tham gia vào mổ Room chat đã được tạo. Giao diện chia sẽ hình ảnh bên người gửi.Chương trình LAN Messenger: 1/ Tổng quan các Form trong chương trình: Tên Form Form1 FormAbout FormAddContact FormChangeDisplayName FormChangePassword FormChatRoom FormJoinRoom FormCreateAccount FormFileSender FormFileReceive FormLogsReader FormMessage FormMusicPlayer FormNetworkSetting FormOfflineMessage FormOption FormPhotoSend FormPhotoReceive FormSelectContact FormSignIn FormWebcam Chức năg Giao diện chính của chương trình. Giao diện chính của Room chat và các chức năng.III. sử dụng các thao tác nâng cao như Webcam. Giao diện chức năng gửi file bên người gửi. Thiết lập IP máy chủ. Giao diện chia sẽ hình ảnh bên người nhận. Chức các tùy chỉnh của chương trình.… Chương trình nghe nhạc online. mời bạn nghe nhạc. Xem các tin nhắn Offline. Thay đổi tên hiển thị (Aliass) của nick chat. SendFile. Giao diện đăng nhập Xem webcam 2 người dùng đang chat trực tiếp. 13 . Giao diện tạo một người dùng mới.

chat theo nhóm. sử dụng trong . Hỗ trợ quản lý nhiều bạn chat bằng danh bạ. UserControl sử dụng cho Listchat (danh bạ).dll DShowNET.dll DirectX.dll Interop.dll LanMessengerContact. … 14 . Giúp chèn mặt cười vào Richtextbox dễ dàng hơn. Socket sử dụng giao thức TCP.dll LanMessengerNotify. xử lý tiến trình.Net Remoting sử dụng Singleton.WMPLib.WMPLib.dll Khendys. Hỗ trợ tạo Room Chat. Hỗ trợ tìm kiếm và nghe nhạc trực tuyến.dll Chức năng Các thư viện giúp sử dụng Windows Media Player có sẵn trong Windows dùng cho tính năng “Nghe nhạc trực tuyến”.dll LanMessengerChatRoomBase. … 4/ Các tính năng đã làm được cho một chương trình Chat qua mạng LAN: Có thể Chat qua mạng LAN với nội dung là text. Thư viện sử dụng tính năng báo trạng thái khi một nick Online/ Offline hay Invisible. có thể chat với nhiều người cùng một lúc. Thông báo trạng thái nick chính xác (Online/Offline/Invisible). Hỗ trợ các tùy chỉnh cho người dùng.2/ Các thư viện kèm theo chương trình: Tên thư viện AxInterop. Regular Expression. hỗ trợ cho tính năng “Chat Webcam” Thư viện bổ sung cho Control RichtextBox. Hỗ trợ xem Webcam. Đăng ký các kênh Httpchannel và TCPchannel. Chương trình sử dụng ít tài nguyên hệ thống. Các hàm xử lý I/O. Mời bạn chat nghe nhạc. Xử lý mã HTML khi hiển thị lên Webrowser.Controls. Hỗ trợ chia sẽ hình ảnh kèm theo tính năng SlideShow. Lớp cơ sở của tính năng Room chat.Net Remoting 3/ Các kỹ thuật dùng trong chương trình: . Truyền giá trị giữa các Form sử dụng Delegate và thông qua Construtor. Hỗ trợ xem lại Log chat. Hỗ trợ gửi file. Thư viện đồ họa. Cho phép thao tác danh bạ bằng menu.Capture.ExRichTextBox. Phân quyền được mời bạn chat vào Room Chat. Hỗ trợ gửi và xem tin nhắn Offline.

5/ Các tính năng chưa làm được. chúng ta đóng cửa sổ đăng nhập. Vào phần Mở rộng ->Thiết lập mạng. sẽ cải thiệt hoặc phát triển ở các phiên bản kế tiếp: Voice Chat. Phát triển rộng hơn theo hướng có thể hoạt động trong môi trường Internet. Thay đổi cửa sổ chat từ Richtextbox sang sử dụng Web browser. Giao diện người dùng: Thiết lập mạng: Từ giao diện chính của chương trình. 15 . Hiển thị Avatar khi người dùng đăng nhập ở nhiều máy khác nhau. … 6/ Hướng dẫn sử dụng chương trình: Giao diện Server: Hiển thị IP của Server và các log. Cải tiến giao diện cửa sổ Chat. Chia sẻ hình ảnh theo hai chiều.

Bắt đầu đăng nhập vào chương trình. Vào Messenger -> Đăng nhập 16 .Trong cửa sổ mới.99.1. nhập IP của máy tính làm Server. Ở đây là 192. chọn Đồng ý.168.

Tạo tài khoản: Tại cửa sổ đăng nhập. Trong Form Đăng ký. mật khẩu và tên hiển thị. Sau đó chọn Tạo. cung cấp những thông tin về tên tài khoản. 17 . chọn Tạo tài khoản mới để sử dụng.

Và đã vào giao diện chính của chương trình. Giao diện chính: 18 . Chọn Đăng nhập. Chúng ta có thể sử dụng tài khoản này để đăng nhập vào chương trình.MessageBox thông báo việc tạo tài khoản thành công.

Thêm một người vào danh sách bạn bè (Friend List). nơi lưu file. Mời bạn chát nghe nhạc. Hướng dẫn sử dụng. Xem lại Log chat gần đây. Đăng nhập bằng tài khoản khác Đăng xuất Thu nhỏ xuống khay hệ thống Thoát chương trình Thay đổi cài đặt về âm thanh. Tạo Room chat cho nhiều người cùng tham gia.vn. lịch sử chat Tùy chỉnh IP của Server chat Đổi tên hiển thị với bạn bè Nghe nhạc trực tuyến từ mp3. Tìm kiếm. download bài hát.Chức năng Menu Bar Menu Chức năng Gửi một tin nhắn Thêm bạn bè Xóa bạn bè Messenger Lịch sử chat Đăng nhập bằng tài khoản khác Đăng xuất Thu nhỏ xuống khay hệ thống Thoát Tùy chỉnh Thiết lập mạng Đổi tên hiển thị với bạn bè Nghe nhạc online Phím tắt Ctrl+G Ctrl+T Ctrl+Shift+X Ctrl+L Ctrl+D Ctrl+M Alt+F4 Mô tả Gởi tin nhắn tới một người. Xóa một người trong danh sách bạn bè (Friend List). Mở rộng Mở một Room Chat Trợ giúp Tham gia Room Chat Hướng dẫn sử dụng Thông tin Cửa sổ chat: Cửa sổ Chat: 19 . Nhóm thực hiện. Tham gia Room chat co sẵn.zing.

Sau đó chọn Gởi. Lúc chưa gởi: Gởi thành công: 20 . Hỗ trợ tất cả các loại file. Kết quả của quá trình gởi file sẽ được cập nhận ở thanh Trạng thái.Menu Chức năng Gởi Emoticons tới bạn Chat Phím tắt Mô tả Gởi Emoticons tới bạn Chat Gởi tiếng Buzz tới bạn Chat Chia sẻ file tới bạn Chat Chia sẻ hình ảnh Chia sẻ File Ctrl+G Gởi tiếng Buzz tới bạn Chat Gởi file tới bạn Chat Chia sẻ hình ảnh Chia sẻ File Chia sẻ file: Gởi file: Bấm "Chọn file cần gửi" chọn file muốn chia sẻ.

Chia sẻ hình ảnh: Gởi ảnh: Sau khi chọn nút gởi ảnh. Hình ảnh được gởi sẽ hiện lên ở cả 2 bên. Bên gửi ảnh: 21 . cửa sổ Chia sẻ hình ảnh được bật lên ở 2 bên. dưới dạng slide hình ảnh.

Bên nhận ảnh: Webcam Hiển thị webcam 2 người đang chat trực tiếp với nhau. 22 .

Nghe nhạc: Menu Nhập tên bài hát cần tìm (1) Danh sách bài hát tìm được (2) Thông tin của bài hát (3) Mời bạn trong list nghe nhạc (4) Tìm kiếm(5) Tải về máy (6) Chức năng Tìm kiếm bài hát từ mp3.zing.zing.vn Kết quả tìm kiếm được của bài hát trên Thông tin liên quan tới bài hát bao gồm về tên bài hát và người trình bày Mời bạn có trong danh sách cùng nghe nhạc Tìm kiếm bài hát Download bài hát được chọn về máy Phím tắt Mô tả Tìm kiếm bài hát từ mp3.vn Kết quả tìm kiếm được của bài hát trên Thông tin liên quan tới bài hát bao gồm về tên bài hát và người trình bày Mời bạn có trong danh sách cùng nghe nhạc Tìm kiếm bài hát Download bài hát được chọn về máy 23 .

Tạo Room Chat Menu Nội dung chat (1) Nick trong Room (2) Mời thêm bạn chat (3) Khung soạn thảo (4) Chức năng Hiển thị nội dung chat của cả phòng chat Danh sách các nick tham gia room chat Mời bạn có trong danh sách bạn bè tham gia vào phòng chat Khung soạn nội dung chat Mô tả Hiển thị nội dung chat của cả phòng chat Danh sách các nick tham gia room chat Mời bạn có trong danh sách bạn bè tham gia vào phòng chat Khung soạn nội dung chat 24 .

Tài liệu tham khảo: Diễn đàn Cộng đồng C việt .com.com.codeproject. 25 .IV.http://www. Cộng đồng CodeProject – http://www.congdongcviet.

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->