1. Trang chủ
  2. » Sinh học

Lập trình mạng - Chương 3: Lập trình Winsock

3 15 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 63,08 KB

Nội dung

Trả về : INVALID_SOCKET nếu có lỗi, ngược lại trả về miêu tả socket mới. Các hàm Winsock sử dụng phía server(2)[r]

(1)

Chương 3

1

LẬP TRÌNH WINSOCK (Windows Socket)

Nội dung

Giới thiệu Winsock

BSD socket Windows

Các hàm hỗ trợ

2

Giới thiệu Winsock

Mô tả giao tiếp socket Windows

dựa tên tảng BSD socket

Tồn hàm Windows API

Các hàm chứa DLL

3

Các hàm chứa DLL

Ứng dụng 16bit: winsock.dll, winsock.lib

Ứng dụng 32bit: wsock32.dll, wsock32.lib

File header: winsock.h, winsock2.h

Khởi tạo môi trường Winsock

int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);

Tham số

wVersionRequested: phiên Winsock muốn sử dụng Có thể sử dụng MAKEWORD(x,y) với

4

sử dụng Có thể sử dụng MAKEWORD(x,y) với x.y phiên muốn sử dụng

lpWSAData: trỏ, trỏ đến cấu trúc

WSADATA, hàm điền thông tin liên quan đến thư viện

(2)

Phiên Winsock

Nền Phiên

Winsock

Windows 95 1.1

Windows 98 2.2

Windows 2000/XP/03 2.2

5

Windows 2000/XP/03 2.2

Windows 95 2.2

Windows CE 1.1

Ví dụ: WSAStartup(MAKEWORD(2,2),lpWSAData);

Kết thúc Winsock

int WSACleanup(void);

Hàm khơng có tham số

Giá trị trả thành công

6

Mã lỗi nhận hàm:

int WSAGetLastError(void)

Chương trình sử dụng Winsock #Include <winsock.h>

WSAStartup()

7

WSACleanup()

Mơ hình Client/Server hướng kết nối

socket() socket()

Winsock Server Winsock Client

8

bind()

listen()

accept()

Address resolution*

(3)

Address resolution #define MY_PORT 1001

#denfine SERVER_ADDR “192.16.1.1”

struct sockaddr_in server_addr;

9

server_addr.sin_family = AF_INET;

server_addr.sin_addr.S_addr=inet_addr(SERVER_ADDR); server_addr.sin_port = htons(MY_PORT);

Các hàm Winsock sử dụng phía server

Hàm tạo socket:

SOCKET socket(int af,int type,int protocol)

Tham số:

10 Tham số:

af : họ địa chỉ, thường AF_INET

type: kiểu socket (SOCK_STREAM, SOCK_DGRAM)

Trả : INVALID_SOCKET có lỗi, ngược lại trả miêu tả socket mới

Các hàm Winsock sử dụng phía server(2)

Hàm kết nối socket đến port:

int bind(SOCKET s,const struct sockaddr FAR* name,int namelen)

Tham số:

11 Tham số:

name: cấu trúc chứa thông tin cổng giao tiếp

namelen: độ dài cấu trúc name

Trả : SOCK_ERROR có lỗi

Các hàm Winsock sử dụng phía server(3)

Hàm tạo hàng đợi chờ kết nối đến:

int listen(SOCKET s, int backlog)

Tham số:

s: socket cần tạo hàng đợi

12

s: socket cần tạo hàng đợi

backlog: độ dài hàng đợi

Ngày đăng: 09/03/2021, 05:05

TỪ KHÓA LIÊN QUAN

w