Professional Documents
Culture Documents
5 - Giao diện SOCKET và WinSock API - print
5 - Giao diện SOCKET và WinSock API - print
Tầng Network
IP
(Internet)
Tầng Data-link
(Host-to-Network)
Các chức năng mà giao diện cung
Đặc điểm của giao diện cấp cho ứng dụng mạng
chức năng được Cấp phát tài nguyên hệ thống
Khởi tạo một kết nối từ client đến server
Chờ và chấp nhận kết nối (phía server)
Gửi và nhận dữ liệu
Tập hợp tạo Đóng kết nối
Xử lý các lỗi có thể xảy ra trong toàn bộ quá trình
Giải phóng các tài nguyên sau khi chấm dứt quá trình
truyền thông
FTP
POP3 CLIENT (local) SERVER (remote)
WEB
Client Server
SMTP
transport transport ứng dụng Client ứng dụng Server
network network Client Server
socket socket
interface interface socket socket
TCP/IP TCP/IP
Internet
Internet DNS
software software
FTP
UDP Telnet
WEB
TCP 12 2: Application Layer
Mô tả Socket Descriptor
Hệ điều quản như
hệ thống Bảng Socket Descriptor
Family: PF_INET
Mỗi được định nhất 0 Service: SOCK_STREAM
Local IP: 158.108.33.66
1 Remote IP: 158.108.2.71
2
Họ thức Local Port: 2249
Remote Port: 21
Kiểu
Địa chỉ
3
Địa chỉ 4
Tiếp tiếp
Về cơ bản diện thể đặt
SERVER
nhiều thức truyền đó
CLIENT
ứng dụng Client ứng dụng Server tạo một người lập cần
local socket socket remote
TCP/IP TCP/IP
software Internet software
dụ chỉ thức
Số hiệu cổng (port number)
một hệ thống mạng một được
Số hiệu cổng dạng số
kiểu sử dụng thức để truyền
cổng
–
kiểu sử dụng thức
dụ –
dụ
cổng được
–
3.2 Tổng quan thư viện Winsock Các file tương ứng
Thư viện lập trình
đặt diện
bổ
bản Công cụ lập trình
bản đầu
bản bắt đầu hỗ trợ
ư viện đó ường ở dạng
địa chỉ sử dụng
lắng cầu kết nối
chấp nhận cầu kết nối
ương học cũng sẽ sử dụng
một mẫu ư viện giảng triển
khởi tạo giải
Cấu trúc dữ liệu WSAData
Hàm khởi tạo phải được thực hiện thành công trước Cấu trúc WSAData lưu thông tin của thư viên Winsock được
khi sử dụng Winsock khởi tạo
Hàm lấy thông tin máy trạm Cấu trúc dữ liệu hostentry
Lấy thông tin về host qua tên host Cấu trúc hostent lưu thông tin về máy trạm được truy
struct hostent FAR* gethostbyname( const char FAR *name ); vấn
struct hostent {
char FAR * h_name; // tên host
Lấy thông tin về host qua địa chỉ IP của host char FAR * FAR * h_aliases;
short h_addrtype; // kiểu địa chỉ
short h_length; // độ dài địa chỉ
struct hostent FAR* gethostbyaddr( const char FAR *addr, int char FAR * FAR * h_addr_list; // danh sách địa chỉ
len, int type );
};
chuyển đổi dữ liệu số Tại sao cần chuyển đổi
Chuyển đổi số nguyên lưu trữ trong bộ nhớ sang dạng hệ
31
Hàm này sẽ tạo một socket mới Hàm thiết lập kết nối TCP đến server
Giá trị trả về là một descriptor tương ứng với int connect(SOCKET s, const struct sockaddr FAR *name, int
socket vừa tạo namelen );
buf là địa chỉ bộ nhớ của vùng đệm sẽ chứa dữ liệu listen để cho socket nhận yêu cầu kết nối ở xa
nhận được
len là kích thước của vùng đệm bộ nhớ
int listen( SOCKET s, int backlog );
Giá trị trả về của hàm sẽ là số byte nhận được
Phân loại Socket API theo ứng dụng Sơ đồ trình tự gọi hàm Socket API trong ứng
dụng Client/Server
Được sử dụng ở cả gồm Server (chạy trên hostid) Client
Chỉ sử dụng chương gồm Nhận bản tin Gửi bản tin yêu cầu