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
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
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 Chương 2: Lập trình mạng trong windows CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 1. Giới thiệu thư viện winsock - Giao tiếp lập trình mạng cho phép phát triển ứng dụng giao tiếp trên cùng một máy hoặc nhiều máy khác nhau thông qua môi trường mạng - Winsock được hỗ trợ sẵn trong windows cho phép lập trình mạng với giao thức TCP/IP hoặc IPX - Lập trình Winsock trong windows ta sử dụng thư viện WINSOCK2.H, WS2_32.LIB - Phiên bản winsock hỗ trợ cho các hệ điều hành Windows như sau: CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 1. Giới thiệu thư viện winsock Khởi động Winsock - Trước khi chạy ứng dụng winsock cần khởi động thư viện winsock, winsock DLL bằng hàm WSAStartup int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData ); wVersionRequested : version của winsock lpWSAData : trỏ tới struct LPWSADATA CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 1. Giới thiệu thư viện winsock Khởi động Winsock - typedef struct WSAData { WORD wVersion; WORD wHighVersion; char szDescription[WSADESCRIPTION_LEN + 1]; char szSystemStatus[WSASYS_STATUS_LEN + 1]; unsigned short iMaxSockets; unsigned short iMaxUdpDg; char FAR * lpVendorInfo; } WSADATA, * LPWSADATA; CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 1. Giới thiệu thư viện winsock Kết thúc Winsock Gọi hàm int WSACleanup(void); CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 2. Tạo socket trong windows - Cú pháp SOCKET socket ( int af, int type, int protocol ); af: họ địa chỉ giao thức, thiết lập là AF_INET nếu ta sử dụng IPv4 type: kiểu giao thức của socket, thiết lập là SOCK_STREAM cho TCP/IP, SOCK_DGRAM cho UDP/IP Protocol: thiết lập là IPPROTO_TCP đối với TCP, IPPROTO_UDP đối với UDP CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 2. Tạo socket trong windows - Địa chỉ winsock quản lý địa chỉ thông qua SOCKADDR_IN structure SOCKADDR_IN structure có dạng sau struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; sin_family : AF_INET sin_addr : lưu trữ địa chỉ IP sin_port : port sin_zero : make the SOCKADDR_IN structure the same size as the SOCKADDR structure. CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 3. Xây dựng chương trình giao tiếp có kết nối dùng winsock Server client socket socket bind Address resolution listen connect accept CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 3. Xây dựng chương trình giao tiếp có kết nối dùng winsock 3.1 Server binding: int bind( SOCKET s, const struct sockaddr FAR* name, int namelen ); Khi socket được tạo ra cần dùng hàm bind để bind tới địa chỉ s: socket name: kiểu địa chỉ socket struct sockaddr namelen: kích thước của name CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 3. Xây dựng chương trình giao tiếp có kết nối dùng winsock Đoạn lệnh tạo socket và bind SOCKET s; SOCKADDR_IN tcpaddr; int port = 5150; s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); tcpaddr.sin_family = AF_INET; tcpaddr.sin_port = htons(port); tcpaddr.sin_addr.s_addr = htonl(INADDR_ANY); bind(s, (SOCKADDR *)&tcpaddr, sizeof(tcpaddr)); CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 3. Xây dựng chương trình giao tiếp có kết nối dùng winsock Listenning: lắng nghe kết nối từ client int listen( SOCKET s, int backlog ); backlog : chiều dài tối đa của hàng đợi kết nối CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 3. Xây dựng chương trình giao tiếp có kết nối dùng winsock accepting: chấp nhận kết nối SOCKET accept( SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen ); addrlen: tham chiếu tới kích thước của SOCKADDR_IN structure CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2 3. Xây dựng chương trình giao tiếp có kết nối dùng winsock Chương trình phía server: #include #pragma comment(lib, wsock32.lib) void main(void) { WSADATA wsaData; SOCKET ListeningSocket; SOCKET NewConnection; SOCKADDR_IN ServerAddr; SOCKADDR_IN ClientAddr; int Port = 5150; // Initialize Winsock version 2.2 ...
Tìm kiếm theo từ khóa liên quan:
Lập trình mạng Bài giảng Lập trình mạng Lập trình mạng Thư viện Winsock của Windows Truyền dữ liệu Chế độ blocking của socketGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần: Mạng máy tính và lập trình mạng
4 trang 160 0 0 -
Báo cáo bài tập lớn môn Mạng máy tính và Lập trình mạng: Tìm hiểu về Soap
32 trang 136 0 0 -
349 trang 123 0 0
-
Bài giảng Lập trình mạng - Chương 1: Giới thiệu Lập trình mạng
18 trang 108 0 0 -
Đề thi học kì môn Truyền số liệu - Trường CĐ Kỹ thuật Cao Thắng (Đề 2)
1 trang 91 1 0 -
Giáo trình Lập trình mạng: Phần 1 - Trường Đại học Phan Thiết
78 trang 75 0 0 -
Tiểu luận: Nghiên cứu kiến trúc hệ thống mạng và bảo mật trung tâm dữ liệu áp dụng cho ABBANK
27 trang 73 0 0 -
Giáo trình Lập trình mạng: Phần 1
54 trang 61 0 0 -
Giáo trình Lập trình mạng - ThS. Văn Thiên Hoàng
201 trang 56 0 0 -
17 trang 47 0 0
-
Giáo trình Thí nghiệm mạng và truyền dữ liệu (sử dụng cho hệ đại học): Phần 2
21 trang 41 0 0 -
Tài liệu hệ thống phát hiện xâm nhập
14 trang 34 0 0 -
Bài giảng Lập trình mạng: Phần 1
75 trang 33 0 0 -
Bài giảng Lập trình mạng nâng cao ICMP protocol - Nguyễn Vũ
29 trang 29 0 0 -
Lecture Network programming - Chapter 1: Basic Network Concepts (Tran Thi Ha Trang)
28 trang 28 0 0 -
8 trang 26 0 0
-
Giáo trình Kỹ thuật truyền tin
94 trang 26 0 0 -
Bài giảng Lập trình mạng: Chương 1 - Trương Đình Huy
14 trang 26 0 0 -
Bài giảng Lập trình mạng: Chương 1 - Lê Bá Vui
53 trang 26 0 0 -
Đề thi kết thúc học phần Truyền dữ liệu - Học viện Nông nghiệp Việt Nam (Đề số 098)
1 trang 26 0 0