Danh mục

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

Số trang: 11      Loại file: doc      Dung lượng: 165.00 KB      Lượt xem: 20      Lượt tải: 0    
Hoai.2512

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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ủ.
Nội dung trích xuất từ tài liệu:
Lập trình mạng bằng pocket PC-part 8 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 đổithô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 nhauthô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ổng1111 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àodịch vụ mà Server đang mở, các client sẽ được yêu cầu đăng ký nick name khácnhau để 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ếtnối thành công, thì các client được phép đăng ký nick name và có thể trao đ ổithô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 PowerPoint ở 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 đangchạ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 theonhữ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ếukế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àncó 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ớinhiều máy tính để bàn, do đó trong ứng dụng này đòi hỏi phải sử dụng kỹ thuậtlậ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 minhhọ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 đ ượchiệ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àmnà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 tasẽ 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 đặtcho thread cần tạo. ThreadParameter là một biến 4 byte được truyền vào hàmMyThread, 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 theokiểu “thô bạo” như vậy sẽ dẫn đến việc không hủy bỏ đúng đắn những tàinguyê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ảnsau đâ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 Threadví 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: Server Client Server Kết nối server Tạo dịch vụ ...

Tài liệu được xem nhiều: