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

Lập trình mạng bằng pocket PC-part 8 pdf

11 258 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 11
Dung lượng 165 KB

Nội dung

Chương 4 Ứng dụng minh họa Mô tả ứng dụng minh họa: Ứng dụng chat giữa các Pocket PC với nhau hoặc Pocket PC với máy tính để bàn: Mục đích: Ứng dụng này cho phép các Pocket PC cùng lúc có thể liên lạc trao đổi thông tin với nhau hoặc Pocket PC liên lạc với nhiều máy tính để bàn khác nhau thông qua một máy chủ. Chức năng: Server: Dùng một máy tính để bàn làm server. Server sẽ tạo một dịch vụ trên cổng 1111 cho phép các client kết nối vào. Sau khi các client kết nối thành công vào dịch vụ mà Server đang mở, các client sẽ được yêu cầu đăng ký nick name khác nhau để có thể liên lạc với nhau. Client: Client bao gồm các Pocket PC hoặc các máy tính để bàn. Sau khi server đã mở dịch vụ, các client có thể kết nối vào dịch đó. Nếu kết nối thành công, thì các client được phép đăng ký nick name và có thể trao đổi thông tin được với nhau. Ứng dụng điều khiển Power Point: Mục đích: Ứng dụng này cho phép chúng ta sử dụng Pocket Pc để điều khiển Power Point ở máy chủ. Chức năng: Server: Dùng máy tính làm server. Trên máy tính đang làm server sẽ đồng thời đang chạy trình chiếu Power Point. Server sẽ nhận thông điệp từ Client( Pocket PC). Server chỉ nhận 6 loại thông điệp, đó là: lên, xuống, đầu trang, cuối trang, số trang bất kỳ, thoát. Từ những thông điệp này mà server sẽ điều khiển Power theo những yêu cầu của thông điệp đó. Client: Sau khi server đã mở dịch vụ, client(Pocket PC) sẽ kết nối đến server. Nếu kết nối thành công, client sẽ gửi đến server 6 thông điệp nêu trên để server xử lý. Chi tiết các hàm liên quan đến ứng dụng: Do đặc điểm của chương trình chat giữa Pocket PC và các máy tính để bàn có kết nối mạng là Pocket PC có khả năng cùng lúc có thể liên lạc được với nhiều máy tính để bàn, do đó trong ứng dụng này đòi hỏi phải sử dụng kỹ thuật lập trình song song. Trong MFC, có hỗ trợ cơ chế đa tuyến, ở đây chúng ta chỉ đề cập đến một vài thành phần của cơ chế đa tuyến để hỗ trợ cho ứng dụng minh họa. Đa tuyến: Cơ chế lập trình đa tiểu trình(MultiThread) cho phép ứng dụng có thể có nhiều tác vụ được xử lý song song. Điều này giúp cho chương trình tăng được hiệu quả tính toán và linh hoạt hơn trong xử lý. Một tiểu trình cơ bản phải có hàm xử lý của tiểu trình (ThreadProc), hàm này sẽ chứa nội dung xử lý của tiểu trình. Có thể dung một số hàm khác nhau để tạo tiểu trình, chẳng hạn: CreateThread, _beginthread,AfxBeginThread Ở đây ta sẽ khảo sát hàm CreateThread. HANDLE CreateThread ( SEC_ATTRS SecurityAttributes, ULONG StackSize, SEC_THREAD_START StartFunction, PVOID ThreadParameter, ULONG CreationFlags, PULONG ThreadId ); Quan trọng nhất trong hàm này là tham số StartFunction, đây là hàm cài đặt cho thread cần tạo. ThreadParameter là một biến 4 byte được truyền vào hàm MyThread, biến pParam, nếu không cần truyền tham số, ta chỉ cần truyền NULL. Cách kết thúc một tiểu trình. Ngoài việc một luồng tự kết thúc khi hàm dùng để cài đặt luồng kết thúc, ta còn có thể yêu cầu luồng kết thúc tức thời. Tuy nhiên, việc kết thúc hàm theo kiểu “thô bạo” như vậy sẽ dẫn đến việc không hủy bỏ đúng đắn những tài nguyên đã được cấp như mở file, kết nối mạng Kết thúc luồng hiện hành: dùng hàm ExitThread(dwExitCode) trong đó dwExitCode là mã lỗi trả về, thường là bằng 0. Để kết thúc một luồng khác ta phải có handle của luồng đó (hThread) được trả về khi tạo luồng, khi đó dùng hàm TerminateThread(hThread, dwExitCode) để kết thúc một luồng. Tóm lại, để tạo một tiểu trình ta cần thực hiện theo các bước cơ bản sau đây:  Viết một hàm xử lý cho tiểu trình DWORD WINAPI ThreadProc( LPVOID lp) { // đoạn code xử lý cho tiểu trình return 0; }  Khai báo một biến kiểu HANDLE để giữ lại Handle của Thread ví dụ: HANDLE hThread;  Gọi hàm CreateThread hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadProc NULL, 0, NULL); if (hThread == NULL) { //Không tạo được Thread }  Khi muốn kết thúc thread ta gọi hàm TerminateThread như sau: TerminateThread(hThread, 0);//kết thúc luồng bất kỳ. Hoặc ExitThread(0);//Kết thúc luồng hiện hành. Mô tả hoạt động của ứng dụng minh họa. Ứng dụng chat giữa các Pocket PC hoặc Pocket PC với máy tính để bàn: Hình 4.1 Server Server Client Kết nối server Nế u chư a tồn tại - Lưu nick. -Thông báo thành công. Gửi nick vừa nhận cho các client và ngược lại. Nếu kết nối thàn hcô ng Nế u đã tồn tại - Lưu nick tạm thời. -Thông báo nick đã tồn tại, gửi “exist” và nick tạm thời. Kiểm tra nick -Thông điệp đến client khác. -Gửi thông điệp “exit” nếu ngừng kết nối. Gửi thông di pệ Tạo tuyến nhận thông điệp -“thanhcong”: Gán nick tạm cho nick vừa nhận. -“exist”:Nhận nick tạm, yêu cầu tạo nick mới. -“server exit”:Không thể kết nối server. -“nick”:Lưu nick vào danh sách, đưa nick lên ListBox. -“mess”:hiển thị thông điệp lên màn hình. -“exit”:Xóa nick vừa nhận ra khỏi danh sách, xóa ra khỏi ListBox. Tạo tuyến xử lý -“taonick”:chưa tồn tại: Gán nick tạm cho nick vừa nhận.Gửi ”thanhcong” về client.Nếu tồn tại gửi “exist” về client. -“exit”: Xóa nick vừa nhận. Gửi “exit” và nick vừa nhận về cho các client khác. -Ngược lại, nhận nick client gửi, client nhận và thông điệp. Gửi nick,”mess”, thông điệp của client gửi cho client nhận. Gửi về client Tạo dịch vụ Tạo tuy ến Nh ận kết nối Ứng dụng điều khiển Power Point: Hình 4.2 Mô tả thuộc tính, phương thức chủ yếu của ứng dụng minh họa: Ứng dụng chat giữa các Pocket PC hoặc Pocket PC với máy tính để bàn: Server: Lớp chủ yếu của Server là lớp CsocketServerDlg. Thành phần dữ liệu chủ yếu: Tên dữ liệu: Chức năng: Socket skListenskAccept[100] Socket lưu thông tin Client. SOCKET hSock[100] Handle của skListenskAccept. HANDLE h[100] Handle của các tiểu trình. Client_Struct Cl[100] Cấu trúc của Client(gồm nickname, số thứ tự) ClistBox m_Danhsach ListBox thể hiện danh sách nickname client. Cbutton m_Taodichvu Biến điều khiển nút Tạo Dịch Vụ. Phương thức chủ yếu: Tên phương thức Chức năng Tiến trình Power Point. Server Pocket PC Tạo dịch vụ Kết nối server. Nếu kết nối thàn h công -Gửi các thông điệp: lên, xuống, đầu trang, cuối trang, số trang bất kỳ ,”exit” đến server. Nhận kết nối. Tạo tuyến xử lý -Nhận các thông điệp, biên dịch các thông điệp thành mã phím tướng ứng, gửi đến Power Point.Nếu thông điệp “exit” đóng socket, đóng tuyến xử lý. void OnTaodichvu Tạo dịch vụ chat. DWORD INAPI ServiceThread Tạo tuyến chờ đợi kết nối. void ReceiveThread Tạo tuyến xử lý các thông điệp từ client. void OnThoatdichvu Thoát dịch vụ. void OnThoat,void OnClose Thoát chương trình. Client: Lớp yếu CsocketClientDlg. Thành phần dữ liệu: Tên dữ liệu. Chức năng. CSocket skSend Socket kết nối server. tongso Lưu trữ tổng số client. Client client[100] Lưu trữ thông tin client(nick, số thứ tự). m_Dsctongso Tổng số người được gửi(dịch vụ Conference). CString m_Danhsachchon[100] Danh sách người được chọn(dịch vụ Conference). BOOL m_Nhieunguo Biến xác định dịch vụ là gửi một người hay Conference. ClistBox m_Danhsach Listbox hiển thị nick name các client. Cstring m_ResultString Màn hình hiển thị kết quả. Cstring m_SendString Lưu trữ thông điệp cần gửi. Phương thức: Tên phương thức Chức năng. BOOL OnInitDialog Khởi tạo giá trị mặc định. void OnConnect Kết nối server. DWORD WINAPI ReceiveThread Tuyến nhận thông điệp từ server. DestroyWindow Xử lý sự kiện tắt cửa sổ. OnChon Kích hoạt dịch vụ Conference. OnThoichon Thoát dịch vụ Conference. OnSelchangeDanhsach Xử lý sự kiện chọn trên ListBox. Ứng dụng điều khiển Power Point: Server: Thành phần dữ liệu: Tên dữ liệu Chức năng. HANDLE h Handle của tuyến tạo dịch vụ nhận thông điệp từ client CsocketskServerskClient,skServerskClient Socket tạo dịch vụ và socket lưu thông tin client. Phương thức: Tên phương thức Chức năng. BOOL OnInitDialog Khởi tạo giá trị ban đầu cho dữ liệu void OnTaodichvu Tạo dịch vụ điều khiển Power Point. DWORD WINAPI ReceiveThread(LPVOID lp) Tuyến nhận thông điệp từ client. HWND findWindowHandle Tìm Handle của các cửa sổ. Client: Thành phần dữ liệu: Tên dữ liệu. Chức năng. CSocket skClient Socket để kết nối server. CString ServerAddress Lưu địa chỉ server. Cstring m_So Lưu số slide cần hiển thị. Phương thức: Tên phương thức Chức năng. BOOL DestroyWindow Xử lý sự kiện đóng cửa sổ. BOOL OnInitDialog Khởi tạo giá trị ban đầu cho dữ liệu. void OnKetnoiserver Kết nối server. OnLen Di chuyển lên. OnXuong Di chuyển xuống. OnDautrang Di chuyển lên đầu trang. OnCuoitrang Di chuyển xuông cuối trang. Ongui Gửi số trang bất kỳ. OnNgungketnoi Ngừng kết nối. Mô tả màn hình kết quả của ứng dụng Ứng dụng chat giữa các Pocket PC hoặc Pocket PC với máy tính để bàn: Server: Hình 4.3 Màn hình Server chat  Nút Tạo Dịch Vụ: Cho phép khởi động dịch vụ chat.  Nút Thoát Dịch Vụ: Cho phép dừng dịch vụ chat.  Nút Thoát: Thoát khỏi chương trình.  Listbox Danh sách: Hiển thị tất cả nick name của các client đã kết nối thành công đến server.  Client: Hình 4.4 Màn hình Chat của Client trên máy tính để bàn.  Nút kết nối Server: Hiển thị màn hình đăng nhập cho phép nhập vào địa chỉ của Server đang mở dịch vụ. Hình 4.5 Màn hình đăng nhập địa chỉ kết nối server.  Nếu kết nối thành công, xuất hiện màn hình đăng nhập nick name: Hình 4.6 Màn hình đăng nhập nick name. Cho phép đăng nhâp nick name của client. Nick name này được dùng như là tên gọi để các client có thể giao tiếp trao đổi với nhau. Nếu đăng ký nick name thành công, thì trong ListBox “Danh sách” sẽ thể hiện tất cả các nick name của các client đã kết nối đến dịch vụ. Lúc đó, chúng ta chỉ cần click chọn một trong những nick name đó để có thể liên lạc. Sau khi đã chọn một nick name, ta có thể nhập thông điệp vào trong textbox bên dưới, chọn nút Gửi để gửi thông điệp. Khi có thông điệp của client nào đó gửi đến thì bên cạnh nick name của client đó sẽ xuất hiện thêm chữ new bên cạnh. Chúng ta chỉ cần click chọn để xem thông điệp. Mặt khác, chúng ta có thể click nút chọn trong nhóm Gửi nhiều người để có thể gửi cùng lúc một thông điệp cho nhiều người. [...]... Nút Thôi chọn để ngưng dịch vụ gửi nhiều người  Nút “Tạo Nick name”: Dùng để tạo nick name mới gửi đến server  Nút “Ngừng kết nối”: Dùng để ngừng kết nối đến server  Nút “Thoát”: Dùng để thoát chương trình . Pocket PC và các máy tính để bàn có kết nối mạng là Pocket PC có khả năng cùng lúc có thể liên lạc được với nhiều máy tính để bàn, do đó trong ứng dụng này đòi hỏi phải sử dụng kỹ thuật lập trình song. dụng chat giữa các Pocket PC với nhau hoặc Pocket PC với máy tính để bàn: Mục đích: Ứng dụng này cho phép các Pocket PC cùng lúc có thể liên lạc trao đổi thông tin với nhau hoặc Pocket PC liên lạc. ứng dụng minh họa. Đa tuyến: Cơ chế lập trình đa tiểu trình( MultiThread) cho phép ứng dụng có thể có nhiều tác vụ được xử lý song song. Điều này giúp cho chương trình tăng được hiệu quả tính toán

Ngày đăng: 14/07/2014, 01:20

TỪ KHÓA LIÊN QUAN

w