Nội dung Giới thiệu Winsock control Các thuộc tính Các phương thức Các sự kiện Các mô hình lập trình với winsock control... Khái niệm cơ bản về TCP TCP Transfer Control Protoc
Trang 1Chương 4
LẬP TRÌNH MẠNG VỚI VISUAL BASIC (WinSock Control)
Trang 2Nội dung
Giới thiệu Winsock control
Các thuộc tính
Các phương thức
Các sự kiện
Các mô hình lập trình với winsock
control
Trang 3Giới thiệu Winsock control
Là ActiveX Control cung cấp các dịch
vụ mạng TCP và UDP dưới dạng các thuộc tính, phương thức và sự kiện.
Có thể sử dụng trong các môi trường
Có thể sử dụng trong các môi trường
Microsoft Access, Visual Basic, Visual C++, Visual Fox
Trang 4Khái niệm cơ bản về TCP
TCP (Transfer Control Protocol): cho phép tạo và duy
trì kết nối đến máy tính ở xa, cả hai máy tính có thể
truyền nhận dữ liệu qua kết nối này.
Client cần biết tên hoặc địa chỉ IP của
Server(RemoteHost) và số hiệu cổng (RemotePort)
mà Server đang “lắng nghe” để gọi hàm Connect
mà Server đang “lắng nghe” để gọi hàm Connect
Server cần thiết lập số hiệu cổng (LocalPort) mà
mình sẽ “lắng nghe”, để gọi hàm Listen, khi có sự
kiện client yêu cầu kết nối thì gọi hàm Accept để tạo
lập kết nối
Khi Client và Server đã có kết nối thì có thể sử dụng
các hàm SendData và GetData để truyền nhận dữ
liệu
Trang 5Khái niệm cơ bản về UDP
UDP (User DataGram Protocol): là giao
thức không hướng kết nối, khác với TCP,
không cần thiết lập kết nối trước rồi mới
truyền nhận dữ liệu
RemotePort là số hiệu cổng mà máy ở xa
đang gắn kết, RemoteHost là địa chỉ của
máy ở xa
thiết lập ở LocalPort và sử dụng hàm Bind
Trang 6Các thuộc tính(properties)
Protocol: trả về/ thiết lập giao thức hiện
tại đang sử dụng
0-sckTCPProtocol: sử dụng giao thức TCP
1-sckUDPProtocol: sử dụng giao thức UDP
LocalPort: trả về/ thiết lập số hiệu cổng
LocalPort: trả về/ thiết lập số hiệu cổng
được dùng trên máy cục bộ
LocalHostName:(chỉ đọc) trả về tên máy
cục bộ
LocalIP:(chỉ đọc) trả về địa chỉ IP của máy
cục bộ
Trang 7Các thuộc tính(2)
hiệu cổng sẽ được kết nối đến máy từ xa.
máy từ xa sẽ kết nối đến.
chỉ IP của máy từ xa.
socket:
Trang 8Các giao thức(methods)
Listen: Lắng nghe các yêu cầu kết nối đến,
LocalPort là số hiệu cổng được sử
dụng.(TCP)
Connect([RemoteHost],[RemotePort]): Kết
Connect([RemoteHost],[RemotePort]): Kết
nối đến máy từ xa, nếu các tham số không được cung cấp thì phương thức này sẽ lấy
giá trị hai thuộc tính RemoteHost và
RemotePort.(TCP)
Accept(RequestID as Long):chấp nhận kết
nối đến.(TCP)
Trang 9Các giao thức(2)
Bind([LocalPort], [LocalIP]): kết socket với
một port và 1 địa chỉ IP, nếu các tham số không được cung cấp thì giá trị các thuộc
tính LocalPort, LocalIP sẽ được sử
dụng.(UDP)
dụng.(UDP)
SendData(data): gửi dữ liệu qua
socket.(TCP/UDP)
GetData(data): nhận dữ liệu từ
socket.(TCP/UDP)
Close: đóng socket (TCP/UDP)
Trang 10Các sự kiện(events)
ConnectionRequest(requestID As Long):
xuất hiện khi có yêu cầu kết nối của máy từ xa.(TCP)
Connect(): xuất hiện khi yêu cầu kết nối
đến máy từ xa hoàn thành.(TCP)
đến máy từ xa hoàn thành.(TCP)
DataArrival(bytesTotal As Long):xuất hiện
khi có dữ liệu gửi đến (TCP/UDP)
SendComplete(): xuất hiện khi đã hoàn
tất gửi dữ liệu.(TCP/UDP)
SendProgress(bytesSent As Long,
bytesRemaining As Long): xuất hiện trong quá trình gửi dữ liệu.(TCP/UDP)
Trang 11Các mô hình lập trình
Client/server
Peer to peer
Trang 12Client/Server(TCP- Interactive)
wskServer.Listen
wskClient.Connect wskServer.Accept
request ID
SendData/GetData
wskServer.Close wskClient.Close
Trang 13Client/Server(TCP- Concurrent)
wskServer(0).Listen
wskClient.Connect wskServer(i).Accept
request ID
SendData/GetData
wskServer(i).Close wskClient.Close
Trang 14wskServer.Bind
wskClient.SendData data
wskServer.GetData
wskServer.Close wskClient.Close
Trang 15Peer to peer(UDP)
wskHostA1.Bind wskHostB1.Bind
wskHostA1.GetData
data wskHostB2.SendData
wskHostA1.Close wskHostB1.Close
wskHostA2.SendData data
wskHostB1.GetData
Trang 16Protocol RFC Link