Tài liệu Chương 3 LẬP TRÌNH WINSOCK (Windows Socket) pptx

21 1K 6
Tài liệu Chương 3 LẬP TRÌNH WINSOCK (Windows Socket) pptx

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương LẬP TRÌNH WINSOCK (Windows Socket) Nội dung  Giới thiệu Winsock  BSD socket Windows  Các hàm hỗ trợ 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  Ứ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 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  Trả về: thành công Phiên Winsock Nền Windows Windows Windows Windows Windows 95 98 2000/XP/03 95 CE Phiên Winsock 1.1 2.2 2.2 2.2 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  Mã lỗi nhận hàm: int WSAGetLastError(void) Chương trình sử dụng Winsock #Include WSAStartup() WSACleanup() Mơ hình Client/Server hướng kết nối Winsock Server socket() bind() Winsock Client socket() Address resolution* listen() accept() connect() Address resolution #define MY_PORT 1001 #denfine SERVER_ADDR “192.16.1.1” struct sockaddr_in server_addr; 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ố:  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 10 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ố:  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 11 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  backlog: độ dài hàng đợi  Trả : giá trị âm có lỗi 12 Các hàm Winsock sử dụng phía server(4)  Hàm chấp nhận kết nối đến: SOCKET accept(SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen)  Tham số:  s : socket lắng nghe kết nối  addr: chứa thông tin địa IP máy client yêu cầu kết nối  addrlen: chiều dài addr  Trả : socket kết nối với client 13 Các hàm Winsock sử dụng phía client  Hàm tạo socket: SOCKET socket(int af,int type,int protocol) (xem hàm tạo socket Server) 14 Các hàm Winsock sử dụng phía client(2)  Hàm tạo kết nối đến server: int connect(SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen)  Tham số:  s : socket tạo kết nối  addr: chứa thông tin địa IP máy server cần thực kết nối  addrlen: chiều dài addr  Trả : SOCKET_ERROR xảy lỗi 15 Các hàm Winsock sử dụng chung cho client server  Hàm gửi liệu: int send(SOCKET s,const char FAR* buff, int len,int flags)  Tham số:     s : socket tạo kết nối để truyền liệu buff: đệm chứa liệu cần truyền len: chiều dài liệu chứa buff flags: thường  Trả : số lượng byte thật gửi 16 Các hàm Winsock sử dụng chung cho client server  Hàm nhận liệu: int recv(SOCKET s,const char FAR* buff, int len,int flags)  Tham số:  s : socket tạo kết nối để truyền liệu  buff: đệm chứa liệu  len: số lượng byte muốn nhận, thường chiều dài tối đa buff  flags: thường  Trả : số lượng byte thật nhận 17 Các hàm Winsock sử dụng chung cho client server  Hàm đóng socket: int closesocket(SOCKET s)  Tham số:  s : socket tạo kết nối để truyền liệu  Hàm giải phóng tài nguyên chiếm dụng mơ tả socket s 18 Mơ hình Client/Server hướng không kết nối Winsock Client Winsock Server socket() socket() Address resolution* bind() data recvfrom() sendto()/recevfrom() client addr data sendto() sendto()/recevfrom() 19 Các hàm truyền nhận hướng không kết nối (UDP)  Hàm gửi liệu: int sendto(SOCKET s,const char FAR* buff, int len,int flags, const struct sockaddr FAR* addr, int addrlen)  Tham số:       s : socket cần truyền liệu buff: đệm chứa liệu cần truyền len: chiều dài liệu chứa buff flags: thường addr: địa cần gửi addrlen: chiều dài addr  Trả : số lượng byte thật gửi 20 Các hàm truyền nhận hướng không kết nối (UDP)  Hàm nhận liệu: int recvfrom(SOCKET s,const char FAR* buff, int len,int flags, const struct sockaddr FAR* addr, int FAR* addrlen)  Tham số:  s : socket cần truyền liệu  buff: đệm chứa liệu nhận  len: chiều dài liệu muốn nhận, thường chiều dài tối đa buff  flags: thường  addr: địa host vừa gửi liệu  addrlen: chiều dài addr  Trả : số lượng byte thật nhận 21 ... chứa DLL  Ứng dụng 16bit: winsock. dll, winsock. lib  Ứng dụng 32 bit: wsock32.dll, wsock32.lib  File header: winsock. h, winsock2 .h Khởi tạo môi trường Winsock int WSAStartup(WORD wVersionRequested,... WSAGetLastError(void) Chương trình sử dụng Winsock #Include WSAStartup() WSACleanup() Mơ hình Client/Server hướng kết nối Winsock Server socket() bind() Winsock Client socket()... hàm Winsock sử dụng chung cho client server  Hàm gửi liệu: int send(SOCKET s,const char FAR* buff, int len,int flags)  Tham số:     s : socket tạo kết nối để truyền liệu buff: đệm chứa liệu

Ngày đăng: 26/01/2014, 17:20

Hình ảnh liên quan

Mô hình Client/Server hướng kết - Tài liệu Chương 3 LẬP TRÌNH WINSOCK (Windows Socket) pptx

h.

ình Client/Server hướng kết Xem tại trang 8 của tài liệu.
Mô hình Client/Server hướng không kết nối - Tài liệu Chương 3 LẬP TRÌNH WINSOCK (Windows Socket) pptx

h.

ình Client/Server hướng không kết nối Xem tại trang 19 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan