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