Chương 4 3B Ứng dụng minh họa 4.1 17BU Mô tả ứng dụng minh họa:

Một phần của tài liệu Lập trình mạng trên máy pocket PC (Trang 70 - 74)

4.1. 17BUMô tả ứng dụng minh họa:

4.1.1 51BỨng dụng chat giữa Pocket PC với máy tính để bàn:

4.1.1.1 81BMục đích:

Ứng dụng này cho phép Pocket PC cùng lúc có thể liên lạc trao đổi thông tin với nhiều máy tính để bàn khác nhau thông qua một máy chủ.

4.1.1.2 82BChức năng:

4.1.1.2.1 101BServer:

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.

4.1.1.2.2 102BClient:

Client bao gồm một bên là Pocket PC còn lại là 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.

4.1.2 52BỨng dụng điều khiển Power Point:

4.1.2.1 83BMục đích:

chủ.

4.1.2.2 84BChức năng:

4.1.2.2.1 103BServer:

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 đó.

4.1.2.2.2 104BClient:

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

4.2. 18BUChi 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 _beginthreadAfxBeginThread....Ở đây ta sẽ khảo sát hàm 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 Error! Hyperlink reference not valid.)

{

//...đoạn code xử lý cho tiểu trình

}

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

4.3. 19BUMô tả hoạt động của ứng dụng minh họa.

Hình 4.1

4.3.2 54BỨng dụng điều khiển Power Point:

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ành công Nếu đã tồn tại

Một phần của tài liệu Lập trình mạng trên máy pocket PC (Trang 70 - 74)