1. Trang chủ
  2. » Tất 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

10 0 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiê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
Trường học CuuDuongThanCong.com
Chuyên ngành Networking Programming
Thể loại Giáo trình
Định dạng
Số trang 10
Dung lượng 164,42 KB

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

Nội dung

Chương 2 Lập trình mạng trong windows CuuDuongThanCong com https //fb com/tailieudientucntt http //cuuduongthancong com https //fb com/tailieudientucntt Chương 2 1 Giới thiệu thư viện winsock Giao tiế[.]

Trang 1

Chương 2: Lập trình mạng trong windows

CuuDuongThanCong.com https://fb.com/tailieudientucntt

Trang 2

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

Trang 3

- 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

Trang 4

- 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

Trang 5

Gọi hàm int WSACleanup(void);

CuuDuongThanCong.com https://fb.com/tailieudientucntt

Trang 6

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

Trang 7

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

Trang 8

dùng winsock

socket

bind

listen

accept

socket

Address resolution connect

CuuDuongThanCong.com https://fb.com/tailieudientucntt

Trang 9

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

Trang 10

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

Ngày đăng: 27/02/2023, 07:57

🧩 Sản phẩm bạn có thể quan tâm

w