Lập trình mạng trong windows - Chương 2
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Lập trình mạng trong windows - Chương 2Chương 2: Lập trình mạng trong windows Chương 21. 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: Chương 21. Giới thiệu thư viện winsockKhở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 WSAStartupint WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData);wVersionRequested : version của winsocklpWSAData : trỏ tới struct LPWSADATA Chương 21. Giới thiệu thư viện winsockKhở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; Chương 21. Giới thiệu thư viện winsockKết thúc WinsockGọi hàm int WSACleanup(void); Chương 22. 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 Chương 22. 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. Chương 23. Xây dựng chương trình giao tiếp có kết nốidùng winsock Server client socket socket bind Address resolution listen connect accept Chương 23. Xây dựng chương trình giao tiếp có kết nốidùng winsock3.1 Serverbinding: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: socketname: kiểu địa chỉ socket struct sockaddrnamelen: kích thước của name Chương 23. Xây dựng chương trình giao tiếp có kết nốidùng winsockĐoạn lệnh tạo socket và bindSOCKET 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)); Chương 23. Xây dựng chương trình giao tiếp có kết nốidùng winsockListenning: lắng nghe kết nối từ clientint listen( SOCKET s, int backlog);backlog : chiều dài tối đa của hàng đợi kết nối Chương 23. Xây dựng chương trình giao tiếp có kết nốidùng winsockaccepting: chấp nhận kết nốiSOCKET 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 Chương 23. Xây dựng chương trình giao tiếp có kết nốidùng winsockChươ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 WSAStartup(MAKEWORD(2,2), &wsaData); Chương 23. Xây dựng chương trình giao tiếp có kết nốidùng winsockChương trình phía server:// Create a new socket to listen for client connections.ListeningSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);// Set up a SOCKADDR_IN structure that will tell bind that weServerAddr.sin_family = AF_INET;ServerAddr.sin_port = htons(Por ...
Tìm kiếm theo từ khóa liên quan:
bài giảng kỹ thuật công nghệ tin học tài liệu điện ngành học điện tử bài tập về điện giáo trình đại họcTài liệu cùng danh mục:
-
173 trang 415 3 0
-
41 trang 330 4 0
-
78 trang 307 1 0
-
160 trang 263 2 0
-
Chuẩn bị cho hệ thống mạng công ty
2 trang 257 0 0 -
Tập bài giảng Thiết kế mạng - ThS. Trần Văn Long, ThS. Trần Đình Tùng (Biên soạn)
222 trang 257 0 0 -
74 trang 241 4 0
-
Ngân hàng câu hỏi trắc nghiệm môn mạng máy tính
99 trang 235 1 0 -
60 trang 232 1 0
-
Tập bài giảng Xử lý tín hiệu số
262 trang 231 0 0
Tài liệu mới:
-
Khảo sát tình trạng dinh dưỡng trước mổ ở người bệnh ung thư đại trực tràng
9 trang 21 0 0 -
94 trang 19 0 0
-
Tham vấn Thanh thiếu niên - ĐH Mở Bán công TP Hồ Chí Minh
276 trang 20 0 0 -
Kết hợp luân phiên sóng T và biến thiên nhịp tim trong tiên lượng bệnh nhân suy tim
10 trang 19 0 0 -
Đề thi giữa học kì 1 môn Ngữ văn lớp 9 năm 2024-2025 có đáp án - Trường THCS Nguyễn Trãi, Thanh Khê
14 trang 21 0 0 -
Đánh giá hiệu quả giải pháp phát triển thể chất cho sinh viên Trường Đại học Kiến trúc Hà Nội
8 trang 20 0 0 -
Tỉ lệ và các yếu tố liên quan đoạn chi dưới ở bệnh nhân đái tháo đường có loét chân
11 trang 20 0 0 -
39 trang 19 0 0
-
Đề thi học kì 1 môn Tiếng Anh lớp 6 năm 2024-2025 có đáp án - Trường TH&THCS Quang Trung, Hội An
6 trang 19 1 0 -
Tôm ram lá chanh vừa nhanh vừa dễRất dễ làm, nhanh gọn mà lại ngon. Nhà mình
7 trang 19 0 0