Tải bản đầy đủ (.pdf) (16 trang)

Tài liệu Chương 4 LẬP TRÌNH MẠNG VỚI VISUAL BASIC (WinSock Control) pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (106.61 KB, 16 trang )

Chương 4
1
LẬP TRÌNH MẠNG VỚI VISUAL BASIC
(WinSock Control)
Nội dung
 Giới thiệu Winsock control
 Các thuộc tính
 Các phương thức
2
 Các sự kiện
 Các mô hình lập trình với winsock
control
Giớ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
3

Có thể sử dụng trong các môi trường
Microsoft Access, Visual Basic, Visual
C++, Visual Fox
Khá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
4
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
Khá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.
5
 Để gửi dữ liệu đến máy ở xa, cần thiết lập
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.
 Muốn nhận dữ liệu ở số hiệu cổng nào cần
thiết lập ở LocalPort và sử dụng hàm
Bind
Cá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
6

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ộ.
Các thuộc tính(2)
 RemotePort: trả về/ thiết lập số
hiệu cổng sẽ được kết nối đến máy từ
xa.

RemoteHost
: trả về/ thiết lập tên
7

RemoteHost
: trả về/ thiết lập tên
máy từ xa sẽ kết nối đến.
 RemoteHostIP:(chỉ đọc) trả về địa
chỉ IP của máy từ xa.
 State:(chỉ đọc) trả về trạng thái của

socket:
Cá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
8

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)
Cá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)
9
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)
Cá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)
10
đế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.(T
CP/UDP)
Các mô hình lập trình
 Client/server
 Peer to peer
11
Client/Server(TCP- Interactive)
wskServer.Listen
wskClient.Connect
wskServer.Accept
request ID
12
SendData/GetData
wskServer.Close wskClient.Close

Client/Server(TCP- Concurrent)
wskServer(0).Listen
wskClient.Connect
wskServer(i).Accept
request ID
13
SendData/GetData
wskServer(i).Close wskClient.Close
Client/Server(UDP)
wskServer.Bind
wskClient.SendData
data
14
wskServer.GetData
wskServer.Close wskClient.Close
Peer to peer(UDP)
wskHostA1.Bind
wskHostB1.Bind
wskHostA1.GetData
data
wskHostB2.SendData
15
wskHostA1.Close wskHostB1.Close
wskHostA2.SendData
data
wskHostB1.GetData
RFC
Protocol RFC Link
SMTP 821 />POP3 1725 />16
HTTP 2068 />FTP 959 />

×