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

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

11 260 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương 4 Ứng dụng minh họaMô 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ó

Trang 1

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

Trang 2

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

Trang 3

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(

Trang 4

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:

Trang 5

Hình 4.1

Server

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

Trang 6

Ứ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:

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:

Tiến trình

Power Point

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

Trang 7

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:

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

Trang 8

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

Server:

Thành phần dữ liệu:

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:

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

Trang 9

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

Trang 10

 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

Trang 11

Hình 4.7 Màn hình cho phép chọn gửi nhiều người.

 ListBox Danh sách liệt kê tất cả những nick name đang kết nối đến server.

Ta dùng các nút “>,>>,<,<<” để có thể chọn hoặc không chọn các các nick

cần gử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

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

HÌNH ẢNH LIÊN QUAN

Hình 4.3 Màn hình Server chat - Lập trình mạng bằng pocket PC-part 8 pdf
Hình 4.3 Màn hình Server chat (Trang 9)
Hình 4.4 Màn hình Chat của Client trên máy tính để bàn. - Lập trình mạng bằng pocket PC-part 8 pdf
Hình 4.4 Màn hình Chat của Client trên máy tính để bàn (Trang 9)
Hình 4.5 Màn hình đăng nhập địa chỉ kết nối server. - Lập trình mạng bằng pocket PC-part 8 pdf
Hình 4.5 Màn hình đăng nhập địa chỉ kết nối server (Trang 10)

TỪ KHÓA LIÊN QUAN

w