Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
673,13 KB
Nội dung
Đồ án tốt nghiệp Lời cảm ơn Em xin chân thành cảm ơn đến thầy giáo, cô giáo đà giảng dạy, trang bị cho em kiến thức tảng thời gian qua Em xin chân thành cảm ơn thầy Lê Hồng Trang đà h-ớng dẫn em thực đồ án Nhân xin cảm ơn bố mẹ gia đình đà nuôi dạy nên ng-ời, chỗ dựa tinh thần vững giúp v-ợt qua khó khăn thử thách sống Em xin chân thành cảm ơn anh chị thân hữu bạn đà tận tình đóng góp ý kiến giúp đỡ để thực tốt đồ án Vinh, tháng năm 2010 SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT Đồ án tốt nghiệp Lời nói đầu Ngày nay, ứng dụng công nghệ thông tin việc tin học hoá đ-ợc xem yếu tố mang tính định hoạt động tổ chức nhà n-ớc, nh- công ty cổ phần Nó đóng vai trò quan trọng tạo b-ớc phát triển mạnh mẽ Nhu cầu trao đổi thông tin ng-ời lớn thông qua nhiều hình thức khác nh- trao đổi với th- từ, điện thoại, mạng máy tính Với tốc độ phát triển công nghệ thông tin có nhiều phần mềm trao đổi thông tin mạng Internet đà đời đ-ợc sư dơng réng r·i nh-: Google Talk, Yahoo! Messenger, Skype,… Bên cạnh đó, mạng LAN đà có nhiều tiến v-ợt bậc ngày phổ biến đời sống sinh hoạt Điều làm cho nhu cầu liên lạc trao đổi thông tin qua mạng LAN ngày lớn Chính ch-ơng trình chat truyền tệp tin qua mạng LAN đ-ợc xây dựng để đáp ứng phần nhu cầu cấp thiết Nội dung đồ án đ-ợc chia thành ch-ơng: Ch-ơng 1: Mở đầu giới thiệu lý do, mục đích chọn đề tài, đối t-ợng phạm vi nghiên cứu Ch-ơng 2: Mô hình khách/ chủ (Client/ Server) Tìm hiểu mô hình Client/ Server Nêu trình xử lý Một số -u điểm mô hình Ch-ơng 3: Tìm hiểu giao thức TCP/ IP Ch-ơng 4: Tìm hiểu giao thức FPT Ch-ơng 5: Giới thiệu vấn đề liên quan tới th- viện Net, đ-a ph-ơng thức, thuộc tính lớp đ-ợc sử dụng hỗ trợ lập trình SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT Đồ án tốt nghiệp Ch-ơng 6: Ch-ơng trình ứng dụng Chat truyền tệp tin Đ-a số hàm giao diện thực số b-ớc ch-ơng trình Ch-ơng 7: Kết luận Tóm tắt chức đà xây dựng đề h-ớng phát triển cho t-ơng lai Về nội dung hình thức toán tránh khỏi thiếu sót, em mong nhận đ-ợc đóng góp ý kiến thầy cô bạn Em xin chân thành cảm ơn SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT Đồ án tốt nghiệp Ch-ơng 1: Mở đầu 1.1 Lý chọn đề tài Hiện nay, mạng LAN đà có nhiều tiến v-ợt bậc ngày phổ biến đời sống sinh hoạt Điều làm cho nhu cầu liên lạc trao đổi thông tin qua mạng LAN ngày lớn Chính ch-ơng trình chat truyền tệp tin qua mạng LAN đ-ợc 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 truyền tệp tin qua mạng LAN theo mô hình Client/ Server 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 cđa Socket NetFramwork tõ ®ã viÕt øng dơng chat truyền tệp tin 1.3.2 Phạm vi nghiên cứu Ch-ơng trình chat truyền tệp tin đ-ợc xây dựng với khả chat văn truyền tệp tin user SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT Đồ án tốt nghiệp Ch-ơng Mô Hình Khách/ Chủ (Client/ Server) 2.1 Mô hình Mô hình đ-ợc phổ biến đ-ợc chấp nhận rộng rÃi hệ thống phân tán mô hình Client/Server Trong mô hình có tập tiến trình mà tiến trình đóng vai trò nh- trình quản lý tài nguyên cho tập hợp tài nguyên cho tr-ớc tập hợp tiến trình client tiến trình thực tác vụ cần truy xuất tới tài nguyên phần cứng phần mềm dùng chung Bản thân trình quản lý tài nguyên cần phải truy xuất tới tài nguyên dùng chung đ-ợc quản lý tiến trình khác, số tiến trình vừa tiến trình client vừa tiến trình Server Các tiến trình phát yêu cầu tới Server chúng cần truy xuất tới tài nguyên Server Nếu yêu cầu đắn Server thực hành động đ-ợc yêu cầu gửi đáp ứng trả lời tới tiến trình Client Mô hình Client/ Server cung cấp cách tiếp cận tổng quát để chia sẻ tài nguyên hệ thống phân tán Mô hình đ-ợc cài đặt nhiều môi tr-ờng phần cứng phần mềm khác Các máy tính đ-ợc sử dụng để chạy tiến trình Client/ Server có nhiều kiểu khác không cần thiết phải phân biệt chúng; tiến trình Client tiến trình Server chạy máy tính Một tiến trình Server sử dụng dịch vụ Server khác Mô hình truyền tin Client/ Server h-íng tíi viƯc cung cÊp dÞch vơ Quá trình trao đổi liệu bao gồm: Truyền 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 SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT Đồ án tốt nghiệp Mô hình truyền tin liên quan đến việc truyền hai thông điệp dạng đồng hóa cụ thể Client Server Tiến trình Server phải nhận thức đ-ợc thông điệp đ-ợc yêu cầu b-ớc đến hành động phát yêu cầu Client phải đ-ợc tạm dừng (bị phong tỏa) buộc tiến trình Client trạng thái chờ nhận đ-ợc đáp ứng Server gửi b-ớc ba Mô hình Client/ Server th-ờng đ-ợc cài đặt dựa thao tác gửi (send) nhận (receive) Hình : Mô hình truyền tin Client/ Server Quá trình giao tiếp Client Server diễn theo hai chế độ: bị phong tỏa (blocked) không bị phong tỏa (non-blocked) Chế độ bị phong tỏa (blocked): SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT Đồ án tốt nghiệp Trong chế độ bị phong tỏa, tiến trình Client Server phát lệnh gửi liệu (send), việc thực thi tiến trình bị tạm ngừng tiến trình nhận phát lệnh nhận liệu (receive) T-ơng tự tiến trình nhận liệu, tiến trình (Client Server) phát lệnh nhận liệu, mà thời điểm ch-a có liệu gửi tới việc thực thi tiến trình bị tạm ngừng có liệu gửi tới Chế độ không bị phong tỏa (non-blocked): Trong chế độ này, tiến trình Client hay Server phát lệnh gửi liệu thực sự, việc thực thi tiến trình đ-ợc tiến hành mà không quan tâm đến việc có tiến trình phát lệnh nhận liệu hay không T-ơng tự cho tr-ờng hợp nhận liệu, tiến trình phát lệnh nhận liệu, nhËn d÷ liƯu hiƯn cã, viƯc thùc thi cđa tiÕn trình đ-ợc tiến hành mà không quan tâm đến việc có tiến trình phát lệnh gửi liệu hay không 2.2 Các kiến trúc Client/ Server 2.2.1 Client/ Server hai tÇng: KiÕn tróc Client/ Server đơn giản kiến trúc hai tầng Trong thực tế hầu hết kiến trúc Client/ Server kiến tróc hai tÇng Mét øng dơng hai tÇng cung cÊp nhiều trạm làm việc với tầng trình diễn thống nhất, tầng truyền tin với tầng l-u trữ liệu tập trung Tầng trình diễn thông th-ờng Client, tầng l-u trữ liệu Server Hầu hết ứng dụng Internet nh- Email, Telnet, FPT chí Web ứng dụng hai tầng Phần lớn lập trình viên trình ứng dụng viết c¸c øng dơng Client/ Server cã xu thÕ sư dơng kiÕn tróc nµy.Trong bµi tËp cđa chóng ta cịng cã thể sử dụng mô hình trình truyền víi mét sè chän läc phï hỵp víi øng dơng cđa chóng ta SVTH: Ngun ThÞ Cao B»ng Líp 46K2 - CNTT Đồ án tốt nghiệp Trong ứng dụng hai tầng truyền thống, khối l-ợng công việc xử lý đ-ợc dành cho phía Client Server đơn giản đóng vai trò nh- ch-ơng trình kiểm soát luồng vào ứng dụng liệu Kết không hiệu ứng dụng bị giảm tài nguyên hạn chế PC, mà khối l-ợng liệu truyền mạng tăng theo Khi toàn ứng dụng đ-ợc xử lý PC, ứng dụng bắt buộc phải yêu cầu nhiều liệu tr-ớc đ-a kết xử lý cho ng-ời dùng Nhiều yêu cầu liệu làm giảm hiệu mạng Một vấn đề th-ờng gặp khác ứng dụng hai tầng vấn đề bảo trì Chỉ cần thay đổi nhỏ ứng dụng cần phải thay đổi lại toàn ứng dụng Client Server Hình : Mô hình Client/ Server hai tầng 2.2.2 Client/ Server ba tầng: Ta tránh đ-ợc vấn đề kiến trúc Client/ Server hai tầng cách mở rộng kiến trúc ba tầng Một kiến trúc ba tầng có thêm tầng tách biệt việc xử lý liệu vị trí trung tâm SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT Đồ án tốt nghiệp Hình : Mô hình Client/ Server ba tÇng Theo kiÕn tróc ba tÇng, mét øng dụng đ-ợc chia thành ba tầng tách biệt mặt logic Tầng tầng trình diễn th-ờng bao gồm giao diện đồ họa Tầng thứ hai, đ-ợc gọi tầng trung gian hay tầng tác nghiệp Tầng thứ ba chứa liệu cần cho ứng dụng Tầng thứ ba ch-ơng trình thực lời gọi hàm để tìm kiếm liệu cần thiết Tầng trình diễn nhận liệu định dạng để hiển thị Sự tách biệt chức xử lý với giao diện đà tạo nên sù linh ho¹t cho viƯc thiÕt kÕ øng dơng NhiỊu giao diện ng-ời dùng đ-ợc xây dựng triển khai mà không làm thay đổi logic ứng dụng Tầng thứ ba chứa liệu cần thiết cho ứng dụng Dữ liệu bao gồm nguồn thông tin nào, bao gồm sở liệu nh- Oracale, SQL Server tài liệu XML 2.2.3 Client/ Server n tầng Kiến trúc n-tầng đ-ợc chia thành tầng nh- sau: Tầng giao diện ng-ời dùng: quản lý t-ơng tác ng-ời dùng với ứng dụng Tầng logic trình diễn: Xác định cách thức hiển thị giao diện ng-ời dùng yêu cầu ng-ời dùng đ-ợc quản lý nh- Tầng logic tác nghiệp: Mô hình hóa quy tắc tác nghiệp, Tầng dịch vụ hạ tầng: Cung cấp chức bổ trợ cần thiết cho ứng dụng nh- thành phần (truyền thông điệp, hỗ trợ giao tác) SVTH: Nguyễn Thị Cao Bằng Lớp 46K2 - CNTT Đồ án tốt nghiệp 2.3 Tiến trình xử lý Trong mô hình khách chủ, hệ thống mạng máy tính phải có đòi hỏi việc tổ chức xử lý bên d-ới cho hiệu quả, đảm bảo yêu cầu (request) từ máy trạm phải đ-ợc máy chủ phúc đáp (response) cách nhanh chóng, không làm tắc nghẽn hệ thống Khi thiết kế ứng dụng theo mô hình khách chủ, ng-ời ta chia xử lý làm hai nhánh: nhánh máy trạm nhánh máy chủ 2.3.1 Nhánh máy trạm (Client side) Các ứng dụng thực công việc đọc hiển thị liệu có bên sở liệu, tính toán liệu hiển thị hình ứng dụng, in liệu Các ngôn ngữ dùng để xây dựng ứng dụng Delphi, Visual Basic, C++, C# Các ứng dụng cho phép ng-ời dùng thực thao tác xóa, thêm, sửa liệu có bên sở liệu bên nhánh máy chủ Các ứng dụng xây dựng nên tránh việc đọc toàn liệu bảng (Table) truy xuất liệu từ máy chủ mà nên lấy thong tin cần thiết cho xử lý Việc làm giảm l-ợng thông tin l-u thông mạng 2.3.2 Nhánh máy chủ (Server side) Các xử lý đ-ợc thực trực tiếp máy chủ Để đảm bảo việc bảo mật (security), ng-ời dùng mạng phải đ-ợc cấp phát quyền truy cập truy xuất đ-ợc d÷ liƯu dïng chung ViƯc cËp nhËt d÷ liƯu cho phép đồng thời lúc ng-ời dùng hành mạng, ví dụ nh- máy chủ cho phép cïng lóc c¶ hai ng-êi dïng cã thĨ cËp nhËt thông tin khách hàng bảng khách hàng Việc l-u liệu (backup data) đ-ợc tự động để đảm bảo liệu không bị tr-ờng hợp xấu xảy SVTH: Nguyễn Thị Cao Bằng 10 Lớp 46K2 - CNTT Đồ án tốt nghiệp Ph-ơng thức trả cho ta liệu dạng mảng byte, để chuyển sang dạng xâu ký tự cần dùng lớp Encoding để chuyển đổi Ph-ơng thức Receive làm việc chế độ đồng (Tức Blocking ch-a có liệu nhận) th-ờng ta sử dụng chế đa tuyến để giải tr-ờng hợp (Phần Receive đ-ợc đặt tuyến riêng biệt) 5.7 Lớp TCP(TCPClient) 5.7.1 Giới thiệu 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 vËy 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ụ nh- 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 5.7.2 Các thành viên lớp TCPClient Ph-ơng thức khởi tạo Mô tả TcpClient () Tạo đối t-ợng TcpClient ch-a đặt thông số TcpClient Tạo TcpClient gán cho EndPoint cục (IPEndPoint) (gán địa máy cục số hiệu cổng để trao đổi thông tin sau) TcpClient Tạo đối t-ợng TcpClient kết nối đến (RemoteHost: String, máy có địa số hiệu cổng đ-ợc truyền vào RemotePost: Int32) RemoteHost địa IP chuẩn tên máy SVTH: Ngun ThÞ Cao B»ng 42 Líp 46K2 - CNTT Đồ án tốt nghiệp Thuộc tính Available Mô tả Cho biết số byte đà nhận từ mạng có sẵn để đọc Client Trả socket ứng với TcpClient hành Connected Trạng thái cho biết đà kết nối đến Server hay ch-a? Hàm thành phần Close() Mô tả Giải phóng đối t-ợng TcpClient nh-ng không đóng kết nối Connect (RemoteHost, 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-ới 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 SVTH: Nguyễn Thị Cao Bằng 43 Lớp 46K2 - CNTT Đồ án tốt nghiệp B-ớc 3: Tạo đối t-ợng StreamReader (Receive)và StreamWriter (Send) "nèi" víi GetStream cđa TCPClient B-íc 4: + 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) Ta cần ý r»ng viƯc gưi th× cã thĨ thùc hiƯn nhiỊu lần với việc gọi nhiều lần ph-ơng thức Gửi_Dữ_Liệu Tuy nhiên, việc nhận liệu ta thực lần Trong tr-ờng hợp ta muốn nhận liệu có liệu cần áp dụng kỹ thuật "Thăm dò" "kích hoạt kiện" nh- phần UDPClient ý t-ởng thùc hiƯn nh- sau: B-íc : T¹o mét TCPClient B-íc : KÕt nèi B-íc : T¹o mét luồng mới, luồng "chuyên theo dõi" xem có liƯu míi vỊ hay kh«ng (chØ viƯc kiĨm tra bé đệm (đối t-ợng StreamReader.EndOfStream = True/False)? Nếu đệm không rỗng (có liệu mới) giá trị EndOfStream False Khi có liệu đệm ta kích hoạt (Raise) kiện Có_Dữ_Liệu lên Trong kiện ta viết lệnh xử lý SVTH: Nguyễn Thị Cao Bằng 44 Lớp 46K2 - CNTT Đồ ¸n tèt nghiƯp 5.8 Líp TCPListener 5.8.1 Giíi thiƯu TCPListerner lớp cho phép ng-ời lập trình xây dựng ứng dụng Server (Ví dụ nh- SMTP Server, DNS Server, POP3 Server hay Server tự định nghĩa .) Đặc biệt ứng dụng xây dựng ứ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 5.8.2 Các thành viên lớp TCPListener Ph-ơng thức khởi tạo Mô tả TcpListener(Port: Int32) Tạo TcpListener lắng nghe cổng định TcpListener(IPEndPoint) Tạo TcpListener giá trị EndPoint truyền vào TcpListener(IPAddress, Port: Int32) Tạo TcpListener lắng nghe kết nối đến địa IP cổng định Ph-ơng thức Mô Tả AcceptSocket Chấp nhận yêu cầu kết nối chờ AcceptTcpClient Chấp nhận yêu cầu kết nối chờ, (ứng dụng dùng lệnh cã mét kÕt nèi ®Õn – “ Blocking” ) Pending Cho biết liệu có kết nối chờ đợi không? (True= có) Start Bắt đầu lắng nghe yêu cầu kết nối Stop Dừng việc nghe SVTH: Nguyễn Thị Cao Bằng 45 Lớp 46K2 - CNTT Đồ án tốt nghiệp Ch-ơng Ch-ơng trình ứng dụng chat truyền tệp tin 6.1 ý t-ởng xây dựng ch-ơng trình Để máy mạng hai máy trao đổi liệu đ-ợc với cần phải có máy đóng vai trò làm Sever máy khác đóng vai trò Client Để Client kết nối đ-ợc với Sever máy phải có hai thông số: Số hiệu cổng Địa IP tên Trong Sever đóng vai trò lắng nghe Client xử lý thông tin mà Client gửi tới Đối với hai máy trình nh- sau: Client Sever, Sever Client, với nhiều máy Client Sever Client Quá trình khởi tạo kết thuật toán xây dựng ch-ơng trình đ-ợc mô hình hóa theo sơ đồ sau : SVTH: Nguyễn Thị Cao Bằng 46 Lớp 46K2 - CNTT Đồ án tốt nghiệp 6.1.1 Sơ đồ tổng quát trình kết nối thực ch-ơng trình Hình 7: Sơ đồ tổng quát ch-ơng trình dùng giao thức TCP/IP SVTH: Nguyễn Thị Cao Bằng 47 Lớp 46K2 - CNTT Đồ án tốt nghiệp 6.1.2 Sơ đồ trình kết nối truyền tệp tin Hình 8: Sơ đồ chi tiết thứ tự trình kết nối truyền tệp tin 6.2 Ch-ơng trình 6.2.1 Tổng quát ch-ơng trình Ch-ơng trình gồm thành phần SERVER đ-ợc cài máy Server, CLIENT đ-ợc cài máy Client Ch-ơng trình đ-ợc viết ngôn ngữ C#, sử dụng giao thức h-ớng kết nối (Tcp) Ch-ơng trình bên Client Server định nghĩa thêm lớp Data Lớp chứa thông tin gói tin cần gửi client client server,serverclient - public Data(): mặc định thành phần lớp SVTH: Ngun ThÞ Cao B»ng 48 Líp 46K2 - CNTT Đồ án tốt nghiệp - public Data(byte[] data): chuyển đổi byte vào đối t-ợng loại Data - public byte[] ToByte(): chuyển đổi cấu trúc Data thành mảng byte Các biến dùng chung: - public string StrReceiveName; tên cđa c¸c client nhËn gãi tin - public string StrName; tªn cđa client kÕt nèi tíi server - public string StrMessage; nội dung tin nhắn văn - public Command cmdCommand; bao gåm c¸c kiĨu lƯnh (Login, Logout, Message, List, Null) 6.2.2 Server Hình 9: Mô hình Server ch-a có Client kết nối tới Hai máy tính truyền tập tin chat với thông qua mét kÕt nèi socket M¸y Server sÏ më kết nối socket lắng nghe cổng đ-ợc định nghĩa cho Client SVTH: Nguyễn Thị Cao Bằng 49 Lớp 46K2 - CNTT Đồ án tốt nghiệp Mét lÇn thiÕt lËp mét kÕt nèi Khi mét kÕt nối đ-ợc thiết lập Server Client thực trình bắt tay sử dụng lệnh đơn giản để tìm kiếm tập tin thực trình truyền nhận tệp tin chat Để khởi tạo sử dụng socket ta sử dụng không gian tên (NameSpace): using System.Net; using System.Net.Sockets; Tạo ServerSocket sử dông giao thøc TCP: ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, 9030); ServerSocket.Bind(ipEndPoint); IPEndPoint ipeSender = new IPEndPoint(IPAddress.Any, 9030); EndPoint epSender = (EndPoint)ipeSender; ServerSocket.Listen(10); ServerSocket.BeginAccept(new AsyncCallback(OnAccept), null); Hµm nhËn kÕt nèi tõ client private void OnAccept(IAsyncResult ar) { try { Socket ClientSocket; ClientSocket = ServerSocket.EndAccept(ar); ServerSocket.BeginAccept(new AsyncCallback(OnAccept), null); ClientSocket.BeginReceive(byteData,0, byteData.Length, SocketFlags.None, New AsyncCallback(OnReceive), ClientSocket); SVTH: NguyÔn Thị Cao Bằng 50 Lớp 46K2 - CNTT Đồ án tèt nghiÖp } catch (Exception ex) { MessageBox.Show(ex.Message, "Server end accept error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } Khi Client kÕt nèi tới Server thành công Client thông báo đà kết nối tới máy chủ, đồng thời Server thông báo Hình 10: Mô hình Server cã Client tham gia kÕt nèi Hµm gưi gãi tin tíi c¸c client kh¸c: private void OnSend(IAsyncResult ar) { try { Socket ClientSocket = (Socket)ar.AsyncState; ClientSocket.EndSend(ar); } catch (Exception ex) { SVTH: Ngun ThÞ Cao B»ng 51 Líp 46K2 - CNTT Đồ án tốt nghiệp MessageBox.Show(ex.Message, "Server Send Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } 6.2.3 Client Để đăng nhập vào hệ thống ta cần biết địa IP server Ta có mô hình đăng nhập: Hình 11: Mô hình đăng nhập Hàm kết nối tới server: private void OnConnect(IAsyncResult ar) { try { ClientSocket.EndConnect(ar); Data msgToSend = new Data(); msgToSend.cmdCommand = Command.Login; msgToSend.StrMessage = null; msgToSend.StrReceiveName = null; msgToSend.StrName = StrName; SVTH: Ngun ThÞ Cao B»ng 52 Líp 46K2 - CNTT Đồ án tốt nghiệp byteData = msgToSend.ToByte(); ClientSocket.BeginSendTo(byteData,0, byteData.Length,SocketFlags.None,epServer,new AsyncCallback(OnSend), null); } catch (Exception ex) { MessageBox.Show(ex.Message, "Loi ket noi", MessageBoxButtons.OK, MessageBoxIcon.Error); } } Sau kÕt nèi tới Server thành công ta có mô hình Client Hình 12: Mô hình client Click vào nút gửi tệp tin ta có mô hình: SVTH: Nguyễn Thị Cao Bằng 53 Lớp 46K2 - CNTT Đồ án tốt nghiệp Hình 13: Mô hình gửi tệp tin SVTH: Nguyễn Thị Cao Bằng 54 Lớp 46K2 - CNTT Đồ án tốt nghiệp Ch-ơng 7: Kết Luận 7.1 Kết đạt đ-ợc Tìm hiểu đ-ợc cách thức lập trình socket sử dụng ngôn ngữ C# Xây dựng đ-ợc ch-ơng trình trao đổi thông tin trực tiếp mạng LAN 7.2 H-ớng phát triển Phát triển ứng dụng thành phần mềm có thêm tính năng: L-u danh sách Client Gửi tin nhắn Client không kết nối với máy chủ Cho phép ng-ời dùng tạo tài khoản để đăng nhập Bổ sung thêm tính chat void webcam SVTH: Nguyễn Thị Cao Bằng 55 Lớp 46K2 - CNTT Đồ án tốt nghiệp Tài liệu tham khảo Website: [1] http://congdongcviet.com [2] http://codeproject.com [3] http://google.com Tµi liƯu tiÕng viƯt: [1] Nguyễn Thúc Hải, Mạng máy tính hệ thống më, NXB gi¸o dơc – 1999 [2] Ngun Minh Q, Bài giảng lập trình mạng SVTH: Nguyễn Thị Cao B»ng 56 Líp 46K2 - CNTT ... động Socket NetFramwork từ viết ứng dụng chat truyền tệp tin 1.3.2 Phạm vi nghiên cứu Ch-ơng trình chat truyền tệp tin đ-ợc xây dựng với khả chat văn truyền tệp tin user SVTH: Nguyễn Thị Cao Bằng... thành phần mô hình Client/ Server Mô hình cung cấp cho ta thực thể trình tự để ta có thẻ xây dựng ứng dụng Khi lập trình ta tuân theo trình tự sau để tạo ứng dụng Hình 4: Mô hình truyền tin Socket... cứng Bạn chọn thành phần tối -u xây dựng hệ thống ứng dụng 2.5 Mô hình truyền tin Socket Đây mô hình b-ớc ta cần đặc biệt quan tâm trình tạo ứng dụng Nó cung cấp cho ta trình trao đổi thông tin