ĐẠ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

Giới thiệu về .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. … Tuy nhiên Web Services là một môi trường “stateless”. Thậm chí người ta có thể làm cho .NET Web Services chỉ có thể được truy xuất qua HTTP còn . chúng cũng là những nhân tố để ta chọn lựa giữa 2 công nghệ này: • ASP.NET Remoting. Những điều sau đây là các điểm khác nhau chính giữa . Microsft ..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.NET Remoting trở thành 1 Web Services bằng cách host nó trong IIS. 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. TCP.1 cùng với Webservice.Net Remoting được giới thiệu từ .Net Remoting: . 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. HTTP. 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. 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. Client và server Web Services chỉ có thể trao đổi với nhau bằng các thông điệp SOAP. 2.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 Framework 1.I.. ngôn ngữ lập trình.Net Remoting: 1.

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. Khi có một request từ phía client. có hai cơ chế để tạo instance của Remote Object rồi từ đó thực thi request. sau đó Object này vẫn được lưu lại chứ không bị hủy đi. đây có thể được coi là Local Objects. và chúng dễ dàng giao tiếp được với nhau.NET Remoting yêu cầu phía clients phải là .NET Webservice truyền thống.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. 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. sẽ có một object mới được tạo ra để thực hiện request đó trên server. Single Call Object: Remote Object sẽ được sinh ra. Cơ chế này tương tự như mô hình . 3.Singleton. chúng chỉ được kích hoạt mỗi khi có request đến từ Client.NET application. Client-Activated Objects (CAO): Thuộc kiểu “Server-side object”. Đế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. Ngoài ra theo như giới thiệu thì . 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. một thông điệp sẽ được gửi tới - - 3 .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 . thực thi request. hay WellKnownObjectMode. nhu cầu của ứng dụng mà server có thể khai báo theo cơ chế WellKnownObjectMode. đồng thời có hỗ trợ callbacks.NET Remoting. Khi một Client gửi một request tới Server sử dụng toán tử “new”. Còn . Còn đối với .SingleCall.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 đó. Tùy vào mục đích sử dụng. trả lời cho client. Các loại Remote Object: Trong . Singleton Object: Ngược lại với Single Call. Đó là Singleton và Singlecall.• • • Web Services là một môi trường stateless.Remote Objects trong . 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.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.

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. .Channel: Trong kĩ thuật . và trong quá trình này. một miền ứng dụng (Application Domain) cũng được tạo ra.Channel được đăng ký trong mỗi Application Domain hoặc nhiều Application Domain thuộc một Process. Hay nói cách khác. 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. khi một ứng dụng được nạp vào trong bộ nhớ. ứng dụng này sẽ được nạp vào Application Domain. 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. Ngoài ra. 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ì 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. Trên thực tế.. 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. . còn Remote Object thực tế nằm trên Server. Các Application Domain có thể cùng thuộc một process hoặc khác process.NET. Một Object từ Client sẽ thông qua Channel để giao tiếp với Object phía server. Mỗi ứng dụng có thuộc các Application Domain khác nhau. TcpChannel và HttpChannel đều có khả năng extend thành những Custom Channel.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. và trả về một ObjRef cho Client Application..Domain: Trong . Channel sẽ truyền tải những message từ hai phía.NET Remoting trước khi Remote Object được gọi. 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 .NET Remoting thì Channel được hiểu như là một kênh để giao tiếp giữa client và server. 5. 4. Ví dụ tạo ra các Proxy như sau: . Và các Channels này cần đăng ký trước các Remote Object.Remote Application. 6. Khi Process kết thúc thì các Channel này cũng tự động được hủy đi. . 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. 4 . một tiến trình được tạo ra.

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

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

C#. Java. Visual C++ . C++. 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. 3.1.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. 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. Khi tiến trình được gán một số hiệu cổng (Server). 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.Số hiệu cổng (Port Number) của Socket Để có thể thực hiện các cuộc giao tiếp. . + 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. . 2. Tiến trình còn lại cũng 7 .được hỗ trợ trong hầu hết các hệ điều hành như MS Windows (WinSock). Linux và được sử dụng trong nhiều ngôn ngữ lập trình khác nhau: như C. 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. Mỗi cổng giao tiếp thể hiện một địa chỉ xác định trong một hệ thống.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).

Địa chỉ IP Ngoài số hiệu cổng. 4. 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 .123.edu. có giá trị trong khoảng từ 0-65535 (16 bits). hai bên giao tiếp còn phải biết địa chỉ IP của nhau. 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.139 hay là địa chỉ theo dạng domain như www.yêu cầu tạo ra một socket. địa chỉ của tiến trình B1 được xác định bằng 2 thông tin: (Host B.69. + Số hiệu cổng gán cho Socket phải là duy nhất trên phạm vi máy đó. Trong hình trên. Port B1) + Địa chỉ máy tính có thể là địa chỉ IP dạng 118.vn.uit.2. 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.

+ Dữ liệu chính xác nhưng tốc độ truyền chậm. Socket là giao diện giữa chương trình và lớp vận chuyển. + Dữ liệu không chính xác. nếu sử dụng giao thức UDP. + Dữ liệu được gởi đi không đảm bảo: Không kiểm tra lỗi.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. Chế độ không nối kết + Không tồn tại kênh giao tiếp ảo giữa hai bên. + Giao tiếp không kết nổi. 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. không đảm bảo thứ tự đến của các gói tin. nếu giữa chúng sử dụng giao thức TCP. không phát hiện và truyền lại gói tin bị lỗi hay mất. 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. truyền lại gói tin lỗi hay mất.443 HTTPS 5. + Dữ liệu được gởi đi theo bảo đảm: có kiểm tra lỗi. Chế độ có nối kết + Tồn tại kênh giao tiếp ảo giữa hai bên giao tiếp. 9 . Nó có thể hoạt động theo hai chế độ: + Giao tiếp có nối kết. tốc độ truyền nhanh.

Any. 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).Message).Reset(). allDone. 17. 16. 12.6. Các ứng dụng trên Internet như Web. IPEndPoint ipEnd = new IPEndPoint(IPAddress. } } catch (Exception ex) { UpdateStatus(ex.InterNetwork.WaitOne(). 2. 6565).Tcp).Stream. 18. Mail. } } 10 . 21. 20. 1. 8. Socket listener = new Socket(AddressFamily. while (true) { allDone. 3. 10. listener. 13.. 14.Listen(100). public void StartListening() { byte[] bytes = new Byte[1024].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. try { listener. FTP. 11. gán số hiệu cổng và lắng nghe các kết nối. 4. 6. 5. SocketType. là các ví dụ điển hình. ProtocolType. Mô hình Client-Server sử dụng Socket ở chế độ có kết nối (TCP) Giai đoạn 1: Server tạo Socket. 9. 15. 19.BeginAccept(new AsyncCallback(AcceptCallback). listener.Bind(ipEnd). . listener). 7.

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

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

Thêm một bạn chat vào danh sách bạn bè. sử dụng các thao tác nâng cao như Webcam. Thay đổi mật khẩu. Tham gia vào mổ Room chat đã được tạo. Giao diện chia sẽ hình ảnh bên người nhận. Giao diện cửa sổ chat. 13 . Thay đổi tên hiển thị (Aliass) của nick chat. Thiết lập IP máy chủ. Thông tin tác giả. Giao diện tạo một người dùng mới.… Chương trình nghe nhạc online. Chức các tùy chỉnh của chương trình. Music. Giao diện chia sẽ hình ảnh bên người gửi. Xóa nick chat ra khỏi list. mời bạn nghe nhạc. Giao diện chính của Room chat và các chức năng. SendFile. Giao diện chức năng gửi file bên người gửi.III. Xem các tin nhắn Offline. Giao diện chức năng gửi file bên người nhận. Xem lại lịch sử chat của nick hiện hành. Giao diện đăng nhập Xem webcam 2 người dùng đang chat trực tiếp.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.

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

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

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

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

Giao diện chính: 18 . 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. Và đã vào giao diện chính của chương trình. Chọn Đăng nhập.

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.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ời bạn chát nghe nhạc. Thêm một người vào danh sách bạn bè (Friend List). Tham gia Room chat co sẵn. Đă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ìm kiếm.vn. 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 . download bài hát. nơi lưu file. Xem lại Log chat gần đây. Hướng dẫn sử dụng. Nhóm thực hiện.zing. Tạo Room chat cho nhiều người cùng tham gia.

Sau đó chọn Gở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ẻ. Hỗ trợ tất cả các loại file. Lúc chưa gởi: Gởi thành công: 20 . Kết quả của quá trình gởi file sẽ được cập nhận ở thanh Trạng thái.

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 gửi ảnh: 21 . Hình ảnh được gởi sẽ hiện lên ở cả 2 bên.Chia sẻ hình ảnh: Gởi ảnh: Sau khi chọn nút gởi ảnh.

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

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.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 .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.zing.

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 .

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

Sign up to vote on this title
UsefulNot useful