Bài số 7

Lập trình mạng trên Linux nhúng

189

Lập trình nhúng ARM-Linux

Mục tiêu bài học số 7

• X}y dựng ứng dụng giao diện, sử dụng c|c điều

khiển (widgets)

• Vận dụng kỹ thuật quản lý layout để sắp xếp c|c

điều khiển trên form

• Vận dụng cơ chế xử lý sự kiện (signal/slot) • Lập trình socket trên nền Linux nhúng • Lập trình mạng với Qt

190

Lập trình nhúng ARM-Linux

 Sau khi kết thúc b{i học n{y, học viên có thể

Nội dung bài học

191

Lập trình nhúng ARM-Linux

7.1. Lập trình socket trên Linux nhúng 7.2. Thư viện lập trình mạng trên Qt 7.3. Lập trình ứng dụng ChatRoom 7.4. Lập trình ứng dụng gửi/nhận ảnh qua socket

7.1. Lập trình Socket trên Linux

192

Lập trình nhúng ARM-Linux

 Giới thiệu lập trình socket  Mô hình lập trình  Minh họa

Giới thiệu lập trình socket

qua mạng (mô hình client/server)

 Socket: Kết nối đầu cuối giữa 2 tiến trình/2 m|y

 Tiến trình client kết nối đến tiến trình server yêu

cầu trao đổi dữ liệu

 Client cần biết về địa chỉ v{ sự tồn tại của server, trong khi server không cần biết về client cho đến khi nó được kết nối đến.

 Mỗi khi thiết lập kết nối, cả 2 bên có thể gửi v{

nhận dữ liệu

193

Lập trình nhúng ARM-Linux

 Liên hệ như kết nối trong một cuộc gọi điện thoại

Giới thiệu lập trình socket

 C|c hệ thống (Windows, Linux, …) đều cung cấp c|c

h{m hệ thống lập trình socket  Có 2 loại socket sử dụng rộng r~i:

• Stream socket • Datagram socket

 Stream sockets: Dựa trên giao thức TCP (Tranmission Control Protocol), l{ giao thức hướng luồng (stream oriented).

 Datagram sockets: Dựa trên giao thức UDP (User

Datagram Protocol), l{ giao thức hướng thông điệp (message oriented)

194

Lập trình nhúng ARM-Linux

Mô hình lập trình socket

client/server

195

Lập trình nhúng ARM-Linux

 Mô hình lập trình socket TCP giữa 2 tiến trình

Chương trình minh họa

• server.c • client.c

 2 tiến trình (M~ nguồn tham khảo):

196

Lập trình nhúng ARM-Linux

 Biên dịch v{ chạy 2 chương trình n{y (trên cùng một m|y local host, hoặc 2 m|y riêng biệt kết nối mạng)

Demo

PC

 Lập trình giao tiếp socket giữa KIT micro 2440 v{

Demo

197

Lập trình nhúng ARM-Linux

7.2. Thư viện lập trình mạng trên QT

• QTcpSocket • QUdpSocket • QTcpServer • QFtp: l{m việc với giao thức truyền file FTP • QHttp: l{m việc với giao thức Http (Xem Qt documentation)

198

Lập trình nhúng ARM-Linux

 QtNetwork

7.3. Chương trình ChatRoom

199

Lập trình nhúng ARM-Linux

7.4. Chương trình gửi/nhận ảnh

200

Lập trình nhúng ARM-Linux

 Lập trình socket client/server  Sử dụng lớp QImage

Thảo luận

201

Lập trình nhúng ARM-Linux