Bài giảng Lập trình mạng: Chương 2 - ThS. Trần Đắc Tốt
lượt xem 7
download
Bài giảng Lập trình mạng: Chương 2 Lập trình Socket hướng kết nối, cung cấp cho người học những kiến thức như: Mô hình socket hướng kết nối; Một chương trình Client đơn giản; Xử lý một số vấn đề trong lập trình hướng kết nối; Sử dụng C# stream với TCP. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình mạng: Chương 2 - ThS. Trần Đắc Tốt
- Chương 2 Lập trình Socket hướng kết nối 1
- Mục lục chương 1. Mô hình socket hướng kết nối 2. Một chương trình Client đơn giản 3. Xử lý một số vấn đề trong lập trình hướng kết nối 4. Sử dụng C# stream với TCP 2
- Mô hình socket hướng kết nối • Mô hình ứng dụng Client – Server hướng kết nối • Các thao tác phía server để xây dựng ứng dụng • Các thao tác phía client để xây dựng ứng dụng • Quá trình truyền tin giữa client và server • Đóng kết nối 3
- Mô hình ứng dụng Client – Server hướng kết nối 1. Các thao tác để xây dựng ứng dụng client – server hướng kết nối - Các thao tác phía server - Các thao tác phía client - Quá trình truyền nhận dữ liệu - Đóng kết nối 2. Mô hình client – server hướng kết nối 4
- Các thao tác để xây dựng ứng dụng client – server hướng kết nối Phía server: - Tạo ra một Sockets - Gắn Sockets đó với một địa chỉ cụ thể (binding) - Lắng nghe kết nối tới - Chấp nhận kết nối Phía Client: - Tạo ra một Sockets - Kết nối đến Server Quá trình truyền nhận dữ liệu Đóng kết nối 5
- Các thao tác để xây dựng ứng dụng client – server hướng kết nối Server socket() bind() listen() • socket(): Server yªu cÇu t¹o mét socket ®Ó cã thÓ sö dông c¸c dÞch vô cña tÇng vËn chuyÓn. • bind(): Server yªu cÇu g¸n sè hiÖu port cho socket. • listen(): Server l¾ng nghe c¸c yªu cÇu nèi kÕt tõ c¸c client trªn cæng ®· ®ưîc g¸n. • Server s½n sµng phôc vô client.
- Các thao tác để xây dựng ứng dụng client – server hướng kết nối Client Server socket() socket() bind() listen() connect() accept() • socket(): Client yªu cÇu t¹o mét socket ®Ó cã thÓ sö dông c¸c dÞch vô cña tÇng vËn chuyÓn. • connect(): Client gëi yªu cÇu nèi kÕt ®Õn Server cã ®Þa chØ IP vµ port x¸c ®Þnh. • accept(): Server chÊp nhËn nèi kÕt cña Client, kªnh giao tiÕp ¶o ®ưîc hình thµnh, Client vµ Server cã thÓ trao ®æi th«ng tin víi nhau.
- Các thao tác để xây dựng ứng dụng client – server hướng kết nối Client Server accept() write() Request Message read() write() Reply Message read() • Sau khi chÊp nhËn yªu cÇu nèi kÕt, th«ng thưêng server thùc hiÖn lÖnh read() và chờ cho ®Õn khi cã th«ng ®iÖp yªu cÇu (Request Message) tõ client. • Server ph©n tÝch vµ thùc thi yªu cÇu. KÕt qu¶ sÏ ®ưîc gëi vÒ client b»ng lÖnh write(). • Sau khi gëi yªu cÇu b»ng lÖnh write(), client chê nhËn th«ng ®iÖp kÕt qu¶ (ReplyMessage) tõ server b»ng lÖnh read().
- Các thao tác để xây dựng ứng dụng client – server hướng kết nối Client Server accept() write() read() write() read() close() close() • C¸c c©u lÖnh read(), write() cã thÓ được thực hiÖn nhiÒu lÇn (ký hiÖu b»ng hình ellipse). • Kªnh ¶o sÏ bÞ xãa khi Server hoÆc Client ®ãng socket b»ng lÖnh close().
- Mô hình ứng dụng client – server hướng kết nối Client Server socket() socket() bind() listen() connect() accept() write() read() write() read() close() close()
- Các thao tác phía Server 1. Tạo một socket 2. Gắn socket với một địa chỉ cụ thể (binding) 3. Đặt socket ở trạng thái lắng nghe kết nối tới từ client 4. Chấp nhận kết nối từ client 11
- 1.Tạo một Socket • Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 12
- 2. Gắn socket với một địa chỉ cụ thể (binding) • Sau khi một socket đã được tạo, nó phải được gắn với một địa chỉ cụ thể trong hệ thống. • Phương thức Bind() thực hiện chức năng này • Cú pháp: – Bind(EndPoint address) 13
- Gắn socket với một địa chỉ cụ thể (binding) • Ví dụ về gọi hàm Bind() IPHostEntry local = Dns.GetHostByName(Dns.GetHostName()); IPEndPoint iep = new IPEndPoint(local.AddressList[0], 5000); Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); server.Bind(iep); 14
- 3. Đặt socket ở trạng thái lắng nghe kết nối tới từ client • Sau khi socket đã được gắn với một địa chỉ cụ thể, sử dụng phương thức Listen() để đặt socket ở trạng thái lắng nghe kết nối từ Client tới. • Cú pháp: – Listen(int conn) – Trong đó: conn là số kết nối tối đa cho phép đợi ở hàng đợi 15
- 4. Chấp nhận kết nối từ client • Sau khi gọi phương thức Listen(), Socket của ta đã sẵn sàng chấp nhận kết nối từ Client. • Gọi hàm Accept() để chấp nhận các kết nối từ Client. • Hàm Accept() sẽ trả lại một đối tượng socket mới được sử dụng cho quá trình truyền và nhận dữ liệu sau này 16
- Chấp nhận kết nối từ client • Ví dụ về chấp nhận kết nối: server.Bind(iep); server.Listen(10); Socket client = server.Accept(); 17
- Các thao tác phía Client 1. Tạo một socket 2. Kết nối đến server 18
- Kết nối đến server • Dùng hàm Connect() để kết nối đến Server. • Hàm Connect yêu cầu một đối tượng IPEndPoint của server ở xa mà Client sẽ kết nối tới. 19
- Kết nối đến server • Ví dụ về kết nối đến Server IPAddress host = IPAddress.Parse(“127.0.0.1"); IPEndPoint hostep = new IPEndPoint(host, 5000); Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); client.Connect(hostep); 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình mạng: Chương 3 - Lương Ánh Hoàng
90 p | 143 | 16
-
Bài giảng Lập trình mạng: Chương 7 - Phạm Trần Vũ
63 p | 110 | 11
-
Bài giảng Lập trình mạng: Chương 1 - Lương Ánh Hoàng
17 p | 122 | 10
-
Bài giảng Lập trình mạng: Chương 2 - ĐH Công nghệ Đồng Nai
65 p | 77 | 8
-
Bài giảng Lập trình mạng: Chương 3 - ThS. Trần Đắc Tốt
37 p | 54 | 7
-
Bài giảng Lập trình mạng: Chương 1 - Trương Đình Huy
14 p | 33 | 6
-
Bài giảng Lập trình mạng: Chương 2 - ThS. Trần Đắc Tốt
49 p | 71 | 6
-
Bài giảng Lập trình mạng: Chương 4 - ĐH Công nghệ Đồng Nai
54 p | 79 | 6
-
Bài giảng Lập trình mạng - Chương 5: Lập trình Web - CGI
112 p | 75 | 5
-
Bài giảng Lập trình mạng: Chương 2 - Phạm Trần Vũ
38 p | 80 | 4
-
Bài giảng Lập trình mạng: Chương 1 - ĐH Công nghệ Đồng Nai
23 p | 71 | 4
-
Bài giảng Lập trình mạng - Chương 1: Giới thiệu Lập trình mạng
18 p | 63 | 4
-
Bài giảng Lập trình mạng: Chương 3 - Phạm Trần Vũ
24 p | 88 | 3
-
Bài giảng Lập trình mạng - Chương 2: Lập trình mạng với thư viện Winsock của Windows
37 p | 44 | 3
-
Bài giảng Lập trình mạng - Chương 5: Lập trình với hệ thống web
41 p | 30 | 3
-
Bài giảng Lập trình mạng - Chương 7: Chương trình chat trên nhiều máy
19 p | 49 | 3
-
Bài giảng Lập trình mạng: Chương 4 - Phạm Trần Vũ
10 p | 102 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn