thuanfun
Thành viên chính thức
- Tham gia
- 7/2/09
- Bài viết
- 83
- Được thích
- 94
- Giới tính
- Nam
NetForVBA là thư viện .NET miễn phí các tính năng cơ bản (Freemium) cung cấp cho VBA những tính năng mạnh mẽ từ Microsoft .NET Framework. Bạn vui lòng tải hoặc nâng cấp lên bản mới nhất tại đây để luôn là phiên bản mới nhất.
Tôi xin giới thiệu một tính năng miễn phí mới của NetForVBA là lập trình kết nối qua mạng LAN.
Để kết nối giữa Client và Server qua mạng LAN, NetForVBA cung cấp 2 class là dnSocketLANServer dành cho phía server và dnSocketLANClient dành cho phía máy client.
Server
Để khởi tạo Server, bạn cần khai báo biến dnSocketLANServer, gắn Port, đăng ký events và chạy thủ tục Start.
Ở code trên có 3 event cơ bản là OnClientConnected, OnMessage, OnClientDisconnected tương ứng với các sự kiện của client là: kết nối, gửi tin đến, ngừng kết nối. 3 sự kiện này lần lượt được đăng ký đến 3 Sub VBA là:
Để gửi một message đến client ta dùng hàm:
Client
Để client kết nối với Server, bạn cần khai báo biến dnSocketLANClient, đăng ký events và chạy thủ tục Connect “IP của máy server”, port.
Các sự kiện được gọi ở 3 Sub cơ bản:
Client gửi tin đến server hoặc client khác bằng các hàm sau:
Dưới đây là file ví dụ về Game Caro qua mạng LAN:
PS: Tính năng lập Client/Server này em mới làm nên còn một số lỗi, em mong các bác góp ý phía dưới để em chỉnh sửa để có một giải pháp kết nối Client/Serser miễn phí hoàn thiện nhất dùng cho VBA.
Tôi xin giới thiệu một tính năng miễn phí mới của NetForVBA là lập trình kết nối qua mạng LAN.
Để kết nối giữa Client và Server qua mạng LAN, NetForVBA cung cấp 2 class là dnSocketLANServer dành cho phía server và dnSocketLANClient dành cho phía máy client.
Server
Để khởi tạo Server, bạn cần khai báo biến dnSocketLANServer, gắn Port, đăng ký events và chạy thủ tục Start.
Mã:
Dim server As New dnSocketLANServer
'# Gắn Port
server.port = 1234
'# Đăng ký Event sẽ gọi ở hàm VBA nào
server.regEvent_OnClientConnected ThisWorkbook, "server_OnClientConnected"
server.regEvent_OnMessage ThisWorkbook, "server_OnMessage"
server.regEvent_OnClientDisconnected ThisWorkbook, "server_OnClientDisconnected"
'# chạy nào!
server.Start
Ở code trên có 3 event cơ bản là OnClientConnected, OnMessage, OnClientDisconnected tương ứng với các sự kiện của client là: kết nối, gửi tin đến, ngừng kết nối. 3 sự kiện này lần lượt được đăng ký đến 3 Sub VBA là:
Mã:
Sub server_OnClientConnected(sender As Object, e As dnSocketLANClientEventArgs)
'Sự kiện xảy ra khi có một Client mới kết nối thành công đến Server
End Sub
Sub server_OnMessage(sender As Object, e As dnSocketLANMessageEventArgs)
'Sự kiện xảy ra khi nhận được tin (message) từ client gửi đến Server
End Sub
Sub server_OnClientDisconnected(client As dnSocketLANClient, e As dnEventArgs)
'Sự kiện xảy ra khi có một Client ngừng kết nối (lỗi, mất mạng hoặc tự thoát)
End Sub
Để gửi một message đến client ta dùng hàm:
Mã:
'# gửi String
server.SendString "địa chỉ IP của client", "dòng unicode text muốn gửi"
'# gửi mảng byte
server.SendBytes "địa chỉ IP của client", byteArray, "ghi chú của bạn"
Client
Để client kết nối với Server, bạn cần khai báo biến dnSocketLANClient, đăng ký events và chạy thủ tục Connect “IP của máy server”, port.
Mã:
Dim client As New dnSocketLANClient
'# Đăng ký Event sẽ gọi ở hàm VBA nào
client.regEvent_OnConnected ThisWorkbook, "client_OnConnected"
client.regEvent_OnMessage ThisWorkbook, "client_OnMessage"
client.regEvent_OnDisconnected ThisWorkbook, "client_OnDisconnected"
'# kết nối nào! (nhớ thay IP và Port của bạn)
client.Connect "192.168.1.1", 1234
Các sự kiện được gọi ở 3 Sub cơ bản:
Mã:
Sub client_OnConnected(sender As dnSocketLANClient, e As Object)
'Xảy ra khi kết nối thành công
End Sub
Sub client_OnMessage(sender As Object, e As dnSocketLANMessageEventArgs)
'Xảy ra khi nhận được message từ sender (có thể là server hoặc client khác)
End Sub
Sub client_OnDisconnected(sender As dnSocketLANClient, e As Object)
'Xảy ra khi ngừng kết nối
End Sub
Client gửi tin đến server hoặc client khác bằng các hàm sau:
Mã:
'# gửi String đển Server
client.SendString "dòng unicode text muốn gửi đến Server"
'# gửi mảng byte đến Server
client.SendBytes byteArray, "ghi chú của bạn"
'# gửi mảng byte đến Client khác
client.SendToIP "IP của client bạn muốn gửi đến", byteArray, "ghi chú của bạn"
Dưới đây là file ví dụ về Game Caro qua mạng LAN:
PS: Tính năng lập Client/Server này em mới làm nên còn một số lỗi, em mong các bác góp ý phía dưới để em chỉnh sửa để có một giải pháp kết nối Client/Serser miễn phí hoàn thiện nhất dùng cho VBA.
Lần chỉnh sửa cuối: