Dùng Java để xây dựng 1 trương trình Chat qua mạng theo mô hình Client/Server

44 1.8K 0
Dùng Java để xây dựng 1 trương trình Chat qua mạng theo mô hình Client/Server

Đ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

Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD MỤC LỤC LỜI NÓI ĐẦU Trong những năm gần đây, mạng máy tính ngày càng trở nên phổ biến. Việc liên kết các máy tính trên môi trường mạng cũng như liên kết các mạng lại với nhau đem lại cho chúng ta nhiều lợi ích trong công việc cũng như trong việc học tập nghiên cứu, giải trí. GVHD : ThS. Nguyễn Bảo Ân Trang 1 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD Chúng ta có thể sử dụng các tài nguyên sẵn có được chia sẻ như file server, printer, máy fax, môi trường mạng còn là một môi trường thông tin nhanh chóng và tiện lợi nhờ vào các cơ chế truyền thông trên mạng như : e-mail, www Bên cạnh đó, tốc độ phát triển của máy tính PC cũng rất nhanh chóng. Các kỹ thuật hiện đại đã giúp tạo ra các máy PC với tốc độ tính toán nhanh hơn, bộ nhớ lớn hơn và khả năng xử lý của nó cũng ngày càng đa dạng hơn trong khi giá thành ngày càng rẻ hơn. Một trong những khả năng ưu việt của máy PC hiện nay là hỗ trợ multimedia. Các máy PC ngày nay giao tiếp với con người không chỉ bằng text mà còn kết hợp tất cả các phương tiện khác như tiếng nói, hình ảnh. Việc đưa kỹ thuật multimedia vào các ứng dụng truyền thông trên mạng giúp chúng ta tạo ra nhiều ứng dụng phong phú hơn. Chẳng hạn hộp thư điện tử ngày nay có thể không chỉ là văn bản mà còn bao gồm tiếng nói, hình ảnh. Các trang web trở nên sinh động hơn hẳn khi kèm theo kỹ thuật multimedia. Bên cạnh đó, chúng ta có thể thiết kế các ứng dụng tiện ích như Video conference, voice mail Thông qua chương trình này, người sử dụng có thể trao đổi thông tin với nhau bằng tiếng nói. Chương trình này đã được hiện thực rất nhiều trong các lĩnh vực thông tin như điện thoại, viễn thông, máy tính . . . Tuy nhiên nó chưa được áp dụng và phát triển rộng rãi như trên các lĩnh vực thông tin khác do sự hạn chế của thiết bị. Ngày nay, khi công nghệ thông tin đã phát triển thì việc hiện thực chương trình này là hoàn toàn có thể. Ứng dụng trong nhiều lĩnh vực khác nhau như :  Việc dạy học từ xa.  Việc chẩn đoán, chữa bệnh từ xa.  Hội thảo, thảo luận theo nhóm.  Công cụ trao đổi thông tin bằng hình ảnh và âm thanh. Mục tiêu của đồ án môn học là tìm hiểu các hình và công nghệ truyền âm thanh trên mạng máy tính, trên cơ sở đó xây dựng ứng dụng truyền thông âm thanh thoại trên mạng cục bộ. Đồ án sẽ xây dựng thử nghiệm một hệ thống cho phép trao đổi thông tin bằng tiếng nói thoại. GVHD : ThS. Nguyễn Bảo Ân Trang 2 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD Việc nghiên cứu lý thuyết một cách hệ thống và xây dựng chương trình phần mềm đòi hỏi phải đầu tư nhiều thời gian. Với thời gian có hạn cho nên bài báo cáo này của nhóm chúng em không tránh khỏi những thiếu sót, chúng em rất mong được sự chỉ dẫn thêm của thầy và các bạn. Nhân đây, chúng em xin chân thành cám ơn đến thầy Nguyễn Bảo Ân, người trực tiếp hướng dẫn chúng em hoàn thành đồ án này. Nhóm xin chân thành cám ơn các thầy cô trong khoa Kỹ thuật Công nghệ, bộ môn Công nghệ Thông tin Trường ĐH Trà Vinh, và toàn thể các bạn đã giúp đỡ chúng em hoàn thành đồ án này. Chương 1. GIỚI THIỆU 1.1. MỤC TIÊU CỦA ĐỀ TÀI. Vận dụng tổng hợp những kiến thức đã học để tiến hành xây dựng chương trình VoiceChat. Dùng Java để xây dựng 1 trương trình Chat qua mạng theo hình Client/Server. GVHD : ThS. Nguyễn Bảo Ân Trang 3 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD Tạo ra được 1 chương trình mà các Client kết nối được với nhau thông qua Server. Các Client có thể gửi tin nhắn, hoặc trò chuyện trực tiếp với các Client khác. 1.2. GIẢI QUYẾT ĐỀ TÀI. TCP/IP cho phép các máy tính trong mạng TCP/IP có thể tạo ra các kết nối để trao đổi thông tin với nhau.Với 1 địa chỉ IP + 1 cổng TCP sẽ tạo thành một cầu nối và Socket chính là một giao diện lập trình trên các cầu nối đó. (1 IP Address + 1 Port TCP = 1 Socket ) Khi các máy tính muốn trao đổi thông tin với nhau thì các máy phải có cùng một Socket. Một máy được coi là Server, nó mở ra một Socket và lắng nghe yêu cầu. Các máy còn lại được coi là Client, nó gọi cho Server Socket để bắt thiết lập một kết nối. Để thiết lập được kết nối cần có địa chỉ của máy đích (Destination IP Address ) và một cổng TCP (TCP port). hình Client – Server Phương thức truyền tin trong Java: Nó sử dụng phương thức truyền tin có kết nối thông qua 2 đối tượng là: Socket(Client) và ServerSocket(Server). Tạo 1 Socket sử dụng để kết nối tới 1 SocketServer. Client Socket được tạo ra thông qua 1 hàm khởi tạo(Contructor) của lớp Socket: Socket client=new Socket(Destination Address,Port) Trong đó: + Destination Address là địa chỉ của máy muốn kết nối tới. GVHD : ThS. Nguyễn Bảo Ân Trang 4 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD + Port là số hiệu cổng TCP đòi hỏi phải có một ServerSocket đang lắng nghe yêu cầu trên đó. Để tạo ra một ServerSocket sử dụng câu lệnh sau: ServerSocket SSocket=new ServerSocket(Port,Number of Connection) Trong đó: + Port là số hiệu cổng sẽ chờ để phục vụ + Number of Connection là số kết nối chấp nhận phục vụ cùng một lúc. Một SocketServer sẽ lắng nghe trên một cổng. Khi nhận được một yêu cầu từ socket (Client Socket) nó sẽ kiểm tra xem còn chấp nhận được kết nối đó không, chưa vượt quá số kết nối mà nó có thể phục vụ, nếu được nó sẽ tạo ra một Socket để tạo liên kết với Client yêu cầu bằng phương thức: Socket client=SSocket.accept(); Các Socket cung cấp 1 giao diện để đọc ghi dữ liệu thông qua 1 luồng.Khi kết nối đã được thiết lập 2 máy tính có thể trao đổi dữ liệu thông qua các đối tượng: BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream())); PrintWriter out=PrintWriter(client.getOutputStream(),true); Khi thực hiện xong cần hủy bỏ các liên kết để trả lại tài nguyên cho hệ thống, chúng ta sử dụng phương thức: In.close(); Out.close(); Client.close(); GVHD : ThS. Nguyễn Bảo Ân Trang 5 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD Hoạt động của một ứng dụng mạng Client/Server. Chương 2 : CƠ SỞ LÝ THUYẾT 2.1. SƠ LƯỢC VỀ MẠNG MÁY TÍNH VÀ HỆ PHÂN TÁN 2.1.1. Sơ lược về mạng máy tính. Mạng máy tính là gì? GVHD : ThS. Nguyễn Bảo Ân Trang 6 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD Mạng máy tính là một tập hợp các máy tính được kết nối với nhau bởi đường truyền vật lý theo một cấu trúc nào đó để đáp ứng một số yêu cầu của người dùng. Vai trò của mạng máy tính Ngày nay với một lượng lớn về thông tin, nhu cầu xử lý thông tin ngày càng cao. Mạng máy tính hiện nay trở nên quá quen thuộc đối với chúng ta, trong mọi lĩnh vực như khoa học, quân sự, quốc phòng, thương mại, dịch vụ, giáo dục Hiện nay ở nhiều nơi mạng đã trở thành một nhu cầu không thể thiếu được. Người ta thấy được việc kết nối các máy tính thành mạng cho chúng ta những khả năng mới to lớn như: Sử dụng chung tài nguyên: những tài nguyên của mạng (như thiết bị, chương trình, dữ liệu) khi được trở thành các tài nguyên chung thì mọi thành viên của mạng đều có thể tiếp cận được mà không quan tâm tới những tài nguyên đó ở đâu. Tăng độ tin cậy của hệ thống: người ta có thể dễ dàng bảo trì máy móc và lưu trữ (backup) các dữ liệu chung và khi có trục trặc trong hệ thống thì chúng có thể được khôi phục nhanh chóng. Trong trường hợp có trục trặc trên một trạm làm việc thì người ta cũng có thể sử dụng những trạm khác thay thế. Nâng cao chất lượng và hiệu quả khai thác thông tin: khi thông tin có thể được sử dụng chung thì nó mang lại cho người sử dụng khả năng tổ chức lại các công việc với những thay đổi về chất như: Ðáp ứng những nhu cầu của hệ thống ứng dụng kinh doanh hiện đại. Cung cấp sự thống nhất giữa các dữ liệu. Tăng cường năng lực xử lý nhờ kết hợp các bộ phận phân tán. Tăng cường truy nhập tới các dịch vụ mạng khác nhau đang được cung cấp trên thế giới. Phân loại mạng máy tính Dựa trên khoảng cách địa lý: GVHD : ThS. Nguyễn Bảo Ân Trang 7 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD Mạng cục bộ (Local Area Network - LAN): có phạm vi hẹp, bán kính khoảng vài chục km Mạng đô thị (Metropolitan Area Network - MAN): phạm vi rộng hơn, với bán kính nhỏ hơn 100km Mạng diện rộng (Wide Area Network - WAN): phạm vi mạng có thể vượt biên giới quốc gia, lục địa. Mạng toàn cầu(Global Area Network - GAN): phạm vi trải rộng trên toàn thế giới. Đường kính mạng Vị trí của máy tính Loại mạng 1 m Trong một mét vuông Mạng khu vực cá nhân 10 m Trong một phòng Mạng cục bộ (LAN) 100 m Trong một tòa nhà 1 km Trong một khu vực 10 km Trong một thành phố Mạng đô thị (MAN) 100 km Trong một quốc gia Mạng diện rộng (WAN) 1000 km Trong một châu lục 10000 km Cả hành tinh Mạng toàn cầu (GAN) Dựa trên kiến trúc mạng Mạng kiểu Bus (Bus Topology) Các máy tính đều được nối vào một đường dây truyền chính (bus). Đường truyền chính này được giới hạn hai đầu bởi một loại đầu nối đặc biệt gọi là terminator Mạng hình Sao (Star Topology) Đây là hình mạng thông dụng nhất. Là dạng đơn giản nhất. Mạng này bao gồm một thiết bị trung tâm là switch hay hub, hoạt động giống như một tổng đài cho phép thực hiện việc nhận và truyền dữ liệu từ trạm này tới các trạm khác. GVHD : ThS. Nguyễn Bảo Ân Trang 8 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD Mạng Vòng tròn (Ring Topology) Là hình mạng mà một node được kết nối chính xác với 2 node khác tạo thành một vòng tròn tín hiệu: một vòng tròn (ring). Mỗi gói dữ liệu đều có mang địa chỉ trạm đích, mỗi trạm khi nhận được một gói dữ liệu nó kiểm tra nếu đúng với địa chỉ của mình thì nó nhận lấy còn nếu không phải thì nó sẽ phát lại cho trạm kế tiếp, cứ như vậy gói dữ liệu đi được đến đích 2.1.2. Sơ lược về hệ phân tán. Hệ phân tán là gì? Có nhiều định nghĩa cho một hệ phân tán. Tuy nhiên, ta có thể định nghĩa hệ phân tán là một tập hợp bao gồm các máy tính tự trị được liên kết với nhau qua một mạng máy tính, và được cài đặt phần mềm hệ phân tán. Phần mềm hệ phân tán cho phép máy tính có thể phối hợp các hoạt động của nó và chia sẻ tài nguyên của hệ thống như phần cứng, phần mềm và dữ liệu. Một số tính chất quan trọng của một hệ phân tán: Thứ nhất chúng cho phép chúng ta chạy những ứng dụng khác nhau trên nhiều máy khác nhau thành một hệ thống duy nhất. Một ưu điểm khác của hệ phân tán đó là khi một hệ thống được thiết kế đúng cách, một hệ phân tán có thể có khả năng thay đổi tuỳ theo quy của hệ thống rất tốt. Tuy nhiên, tất cả mọi thứ đều có hai mặt của nó, một hệ phân tán cũng vậy bên cạnh những mặt ưu việt thì nó cũng có những nhược điểm đó là tính bảo mật kém. Những ứng dụng của hệ phân tán: Cung cấp những thuận lợi cho việc tính toán đa mục đích đến những nhóm người dùng, tự động hoá công việc ngân hàng và hệ thống truyền thông đa phương tiện, ngoài ra chúng còn bao quát toàn bộ những ứng dụng thương mại và kĩ thuật. Hệ phân tán đã trở thành tiêu chuẩn để tổ chức về mặt tính toán. Nó có thể được sử dụng cho việc thực hiện tương tác hệ thống tính toán đa mục đích trong UNIX và hỗ trợ cho phạm vi rộng của thương mại và ứng dụng công nghiệp của những máy tính… Các đặc trưng cơ bản của hệ phân tán GVHD : ThS. Nguyễn Bảo Ân Trang 9 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD  Kết nối người sử dụng với tài nguyên. Chia sẻ nguồn tài nguyên là một đặc tính cơ bản của hệ thống phân tán, nó là cơ sở cho những đặc tính khác và nó ảnh hưởng đến những kiến trúc phần mềm có sẵn trong các hệ phân tán. Các nguồn tài nguyên có thể là mục dữ liệu, phần cứng và các thành phần của phần cứng. Các nguồn tài nguyên được phân biệt từ một dữ liệu được quản lý với những quá trình xử lý đơn bởi nhu cầu của vài quá trình xử lý để chia sẻ chúng.  Tính trong suốt (transparency). Một hệ phân tán được gọi là trong suốt nếu nó có khả năng che dấu tính rời rạc và những nhược điểm có thể của nó đối với người sử dụng cuối và người lập trình ứng dụng.Có 8 dạng trong suốt: Trong suốt truy cập: che dấu cách biểu diễn dữ liệu và cách thức truy cập tài nguyên. Trong suốt vị trí: che dấu vị trí thực của tài nguyên. Trong suốt di trú: che dấu khả năng di trú (di chuyển từ nơi này sang nơi khác) của tài nguyên. Trong suốt định vị lại: che dấu khả năng tài nguyên có thể di chuyển từ nơi này đến nơi khác ngay cả khi đang được sử dụng. Trong suốt bản sao : che dấu các bản sao được nhân ra. Trong suốt về tương tranh. Trong suốt về lỗi. Trong suốt truy cập nhanh.  Tính mở (openess). Một hệ phân tán được gọi là có tính mở nếu nó có khả năng bổ sung thêm các dịch vụ mới mà không làm ảnh hưởng xấu đến các dịch vụ đã có.  Tính co dãn (scalability). Một hệ phân tán được gọi là có tính co dãn nếu nó có thể thích nghi được với những sự thay đổi qui của hệ thống Tính co dãn thể hiện trên 3 khía cạnh. Dễ dàng bổ sung thêm tài nguyên và người sử dụng. GVHD : ThS. Nguyễn Bảo Ân Trang 10 [...]... gửi về Mô hình client/server thường được cài đặt dựa trên các thao tác cơ bản là gửi (send) và nhận (receive) hình được phổ biến nhất và được chấp nhận rộng rãi trong các hệ thống phân tán là mô hình client/server Trong hình này sẽ có một tập các tiến trình mà mỗi tiến trình đóng vai trò như là một trình quản lý tài nguyên cho một tập hợp các tài nguyên cho trước và một tập hợp các tiến trình. .. kích thước này (16 bits) Checksum: tính từ header và các trường dữ liệu (16 bits) Urgent: Chỉ ra điểm kết thúc của dữ liệu chuẩn (16 bits) Options: Một tùy chọn định ra kích thước tối đa hiện hành của gói TCP Data: Dữ liệu giao thức của lớp trên 2.3 HÌNH CLIENT-SERVER Các ứng dụng mạng thường hoạt động theohình client/server như thư điện tử, truyền nhận tập tin, game trên mạng, hình này gồm có... tiến trình client hình client/server cung cấp một cách tiếp cận tổng quát để chia sẻ tài nguyên trong các hệ thống phân tán hình này có thể được cài đặt bằng rất nhiều môi trường phần cứng và phần mềm khác nhau Các máy tính được sử dụng để chạy các tiến trình client/server có nhiều kiểu khác nhau và không cần thiết phải phân biệt giữa chúng; cả tiến GVHD : ThS Nguyễn Bảo Ân Trang 15 Lập trình. .. Lớp: DA08TTD trình client và tiến trình server đều có thể chạy trên cùng một máy tính Một tiến trình server có thể sử dụng dịch vụ của một server khác hình truyền tin client/server hướng tới việc cung cấp dịch vụ Quá trình trao đổi dữ liệu bao gồm: Truyền một yêu cầu từ tiến trình client tới tiến trình server Yêu cầu được server xử lý Truyền đáp ứng cho client hình truyền tin này liên quan đến việc... trong nhiều ngôn ngữ lập trình khác nhau: như C, C++, Java, Visual Basic, C#, Windows Socket Application Programming Interface (Winsock API) là một thư viện các hàm socket Winsock hỗ trợ các lập trình viên xây dựng các ứng dụng mạng trên nền TCP/IP Xây dựng ứng dụng Client-Server với Socket Khi xây dụng một ứng dụng mạng, chúng ta thực hiện các bước sau: 1 Xác định kiến trúc mạng: Client – Server,... đóng Như vậy, toàn bộ quá trình sẽ diễn ra như sau GVHD : ThS Nguyễn Bảo Ân Trang 32 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD Chương 4 CÀI ĐẶT VÀ KẾT QUẢ THỬ NGHIỆM 4 .1 CÀI ĐẶT 4 .1. 1 Quá trình lựa chọn ngôn ngữ Java là một công nghệ xây dựng các ứng dụng phần mềm có vị trí rất lớn trong những năm cuối thế kỉ 20, đầu thế kỉ 21 Nó được coi là công nghệ mang tính cách mạng và khả thi nhất trong... server Như vậy, quá trình trao đổi dữ liệu giữa client/server bao gồm: Truyền một yêu cầu từ chương trình client tới chương trình server Yêu cầu được server xử lý Truyền đáp ứng cho client GVHD : ThS Nguyễn Bảo Ân Trang 14 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD hình truyền tin này thực hiện truyền hai thông điệp qua lại giữa client và server một cách đồng bộ hóa Chương trình server nhận... phần cứng khác nhau Vì những lí do trên, nhóm chúng quyết định chọn ngôn ngữ Java làm nền tảng ngôn ngữ lập trình cho ứng dụng VoiceChat trong đồ án môn học “Lập trình ứng dụng phân tán đối tượng” này 4 .1. 2 tả chi tiết các lớp, phương thức của ứng dụng Lớp Server Dùng giao thức TCP/IP Trao đổi dữ liệu thông qua Socket Dùng một socket đảm nhận việc truyền và nhận dữ liệu Cơ chế gọi và lắng nghe liên... này gồm có một chương trình đóng vai trò là client và một chương trình đóng vai trò là server Hai chương trình này sẽ giao tiếp với nhau thông qua mạng Chương trình server đóng vai trò cung cấp dịch vụ Chương trình này luôn luôn lắng nghe các yêu cầu từ phía client, rồi tính toán và đáp trả kết quả tương ứng Chương trình client cần một dịch vụ và gởi yêu cầu dịch vụ tới chương trình server và đợi đáp... tầng ứng dụng khi trao đổi dữ liệu giữa hai end-host 5 Lập trình Phần này trình bày các bước cơ bản trong việc xây dựng các ứng dụng mạng theo kiến trúc Client-Server và giao thức sử dụng ở tầng Transport là TCP bằng Socket GVHD : ThS Nguyễn Bảo Ân Trang 17 Lập trình ứng dụng phân tán đối tượng Lớp: DA08TTD Sơ đồ tương tác giữa Server - Client theo giao thức TCP Trong giai đoạn truyền nhận dữ liệu, việc

Ngày đăng: 12/05/2014, 08:29

Từ khóa liên quan

Mục lục

  • Chương 1. GIỚI THIỆU

  • Chương 2 : CƠ SỞ LÝ THUYẾT

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

  • Đang cập nhật ...

Tài liệu liên quan