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

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

3 16 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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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]

Trang 1

Chương 3

1

LẬP TRÌNH WINSOCK

(Windows Socket)

Nội dung

 Giới thiệu Winsock

 BSD socket trong Windows

 Các hàm hỗ trợ

2

Giới thiệu Winsock

 Mô tả giao tiếp socket trong Windows

dựa tên nền tảng của BSD socket

 Tồn tại dưới các hàm Windows API

 Các hàm cơ bản được chứa trong DLL

 Các hàm cơ bản được chứa trong 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 bản Winsock muốn

sử dụng Có thể sử dụng MAKEWORD(x,y) với

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

 lpWSAData: là con trỏ, trỏ đến cấu trúc WSADATA, hàm này sẽ điền thông tin liên quan đến thư viện

 Trả về: 0 nếu thành công

Trang 2

Phiên bản Winsock

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);

 Giá trị trả về là 0 nếu thành công

6

 Mã lỗi có thể nhận bằng hàm:

int WSAGetLastError(void)

Chương trình sử dụng Winsock

#Include <winsock.h>

WSAStartup()

WSACleanup()

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

socket() socket() Winsock Server Winsock Client

bind()

listen()

accept()

Address resolution*

connect()

Trang 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 là AF_INET

 type: kiểu socket (SOCK_STREAM, SOCK_DGRAM)

 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)

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

int bind(SOCKET s,const struct sockaddr

FAR* name,int namelen)

 Tham số:

 Tham số:

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

tiếp

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

 Trả về : SOCK_ERROR nếu 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

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

 backlog: độ dài của hàng đợi

 Trả về : giá trị âm nếu có lỗi

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

TỪ KHÓA LIÊN QUAN

w