Danh mục

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

Số trang: 37      Loại file: pdf      Dung lượng: 271.13 KB      Lượt xem: 18      Lượt tải: 0    
tailieu_vip

Phí tải xuống: 3,000 VND Tải xuống file đầy đủ (37 trang) 0
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin 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. Những nội dung chính được trình bày trong chương này gồm có: Giới thiệu thư viện winsock, tạo socket trong windows, xây dựng chương trình giao tiếp có kết nối dùng winsock, truyền/nhận dữ liệu, xây dựng chương trình giao tiếp không kết nối dùng winsock, chế độ blocking của socket. Mời các bạn cùng tham khảo.
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ài liệu được xem nhiều:

Gợi ý tài liệu liên quan: