webxcel
VbAsyncSocket
webxcel | VbAsyncSocket | |
---|---|---|
4 | 11 | |
415 | 161 | |
- | - | |
0.0 | 6.4 | |
over 4 years ago | 2 days ago | |
Visual Basic | Visual Basic 6.0 | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
webxcel
-
I HATE EXCEL I HATE EXCEL I HATE EXCEL I HATE EXCEL I HATE EXCEL
Not only can excel be a database, but it can also be an web server with API to access the spreadsheets as a database. Take a look at WebExcel
-
When Excel isn't just a database, but THE database
See webxcel, an excel macro that turns your workbook into a backend "database" with a rest api. It is an entire http server running in excel serving the worksheets. It even supports fastapi for using php pages.
-
Error using OCX “Class not registered” [VBA PowerPoint]
Option Explicit ' bits and pieces from: https://github.com/michaelneu/webxcel/blob/master/src/Modules/wsock32.bas ' and https://github.com/michaelneu/webxcel/blob/master/src/Classes/TcpClient.cls Public Const WSADESCRIPTION_LEN = 256 Public Const WSASYS_STATUS_LEN = 128 Public Const WSADESCRIPTION_LEN_ARRAY = WSADESCRIPTION_LEN + 1 Public Const WSASYS_STATUS_LEN_ARRAY = WSASYS_STATUS_LEN + 1 Public Type WSADATA wVersion As Integer wHighVersion As Integer szDescription As String * WSADESCRIPTION_LEN_ARRAY szSystemStatus As String * WSASYS_STATUS_LEN_ARRAY iMaxSockets As Integer iMaxUdpDg As Integer lpVendorInfo As String End Type Public Const AF_INET = 2 Public Const SOCK_STREAM = 1 Public Const INADDR_ANY = 0 Public Type IN_ADDR s_addr As Long End Type Public Type sockaddr_in sin_family As Integer sin_port As Integer sin_addr As IN_ADDR sin_zero As String * 8 End Type Public Const FD_SETSIZE = 64 Public Type fd_set fd_count As Integer fd_array(FD_SETSIZE) As Long End Type Public Type timeval tv_sec As Long tv_usec As Long End Type Public Type sockaddr sa_family As Integer sa_data As String * 14 End Type Public Const INVALID_SOCKET = -1 Public Const SOL_SOCKET = 65535 Public Const SO_RCVTIMEO = &H1006 Public Declare PtrSafe Function WSAStartup Lib "wsock32.dll" (ByVal versionRequired As Long, wsa As WSADATA) As Long Public Declare PtrSafe Function WSAGetLastError Lib "wsock32.dll" () As Long Public Declare PtrSafe Function WSACleanup Lib "wsock32.dll" () As Long Public Declare PtrSafe Function socket Lib "wsock32.dll" (ByVal addressFamily As Long, ByVal socketType As Long, ByVal protocol As Long) As Long Public Declare PtrSafe Function connect Lib "wsock32.dll" (ByVal s As Long, ByRef address As sockaddr_in, ByVal namelen As Long) As Long Public Declare PtrSafe Function htons Lib "wsock32.dll" (ByVal hostshort As Long) As Integer Public Declare PtrSafe Function bind Lib "wsock32.dll" (ByVal socket As Long, name As sockaddr_in, ByVal nameLength As Integer) As Long Public Declare PtrSafe Function listen Lib "wsock32.dll" (ByVal socket As Long, ByVal backlog As Integer) As Long Public Declare PtrSafe Function select_ Lib "wsock32.dll" Alias "select" (ByVal nfds As Integer, readfds As fd_set, writefds As fd_set, exceptfds As fd_set, timeout As timeval) As Integer Public Declare PtrSafe Function accept Lib "wsock32.dll" (ByVal socket As Long, clientAddress As sockaddr, clientAddressLength As Integer) As Long Public Declare PtrSafe Function setsockopt Lib "wsock32.dll" (ByVal socket As Long, ByVal level As Long, ByVal optname As Long, ByRef optval As Long, ByVal optlen As Integer) As Long Public Declare PtrSafe Function send Lib "wsock32.dll" (ByVal socket As Long, buffer As String, ByVal bufferLength As Long, ByVal flags As Long) As Long Public Declare PtrSafe Function recv Lib "wsock32.dll" (ByVal socket As Long, ByVal buffer As String, ByVal bufferLength As Long, ByVal flags As Long) As Long Public Declare PtrSafe Function inet_addr Lib "wsock32.dll" (ByVal hostname As String) As Long Public Declare PtrSafe Function closesocket Lib "wsock32.dll" (ByVal s As Long) As Long Sub Client() ' initialize winsock (WSAStartup) Dim wVersionRequested As Long wVersionRequested = &H202 ' try for version 2.2 Dim WinsockData As WSADATA, WinsockResult As Long WinsockResult = WSAStartup(&H101, WinsockData) If WinsockResult <> 0 Then ' error MsgBox "WSAStartup Error: " & WinsockResult Exit Sub End If Dim host As String, port As Long, m_clientSocket As Long host = "192.168.1.1" ' local router, commonly port = 80 Dim IPaddress As sockaddr_in IPaddress.sin_addr.s_addr = inet_addr(host) IPaddress.sin_family = AF_INET IPaddress.sin_port = htons(port) m_clientSocket = socket(AF_INET, SOCK_STREAM, 0) Dim connectResult As Long connectResult = connect(m_clientSocket, IPaddress, 16) If connectResult = -1 Then ' error MsgBox "Connect Error" WinsockResult = WSACleanup() Exit Sub End If Dim message As String message = "GET / HTTP/1.1" WinsockResult = send(m_clientSocket, ByVal message, Len(message), 0) Dim buffer As String, x As Long message = "" Do buffer = Trim(ReceiveBytes(m_clientSocket, 1024)) If Len(buffer) > 0 Then message = message & buffer End If Loop While Len(buffer) > 0 MsgBox "Reply: " & Trim(message) ' clean up WinsockResult = WSACleanup() If WinsockResult <> 0 Then ' error MsgBox "Cleanup Error: " & WinsockResult End If End Sub Public Function ReceiveBytes(ByVal a_clientSocket As Long, ByVal bytes As Long) As String Dim buffer As String, i As Long buffer = "" For i = 0 To bytes - 1 buffer = buffer & Chr(0) Next Dim readBytes As Long readBytes = recv(a_clientSocket, buffer, bytes, 0) If readBytes <> -1 Then ReceiveBytes = Left(buffer, readBytes) End If End Function
-
Host http server in vba
Have you seen this? https://github.com/michaelneu/webxcel
VbAsyncSocket
-
Modern TLS/SSL on 16-bit Windows
I wonder if it is possible to make https://github.com/wqweto/VbAsyncSocket compile on Visual Basic 4, then you could target 16 bit.
- VbAsyncSocket: Sockets with pure VB6 implementation of TLS encryption
- A TLS 1.3 stack written in Visual Basic 6
-
A TLS 1.3 Stack Written in Visual Basic 6
What is impressive (or hilarious) is that someone opened an issue because it wasn't compatible with VB5[0]. The maintainer added a VB5 branch which apparently fixed the issues.
[0] https://github.com/wqweto/VbAsyncSocket/issues/4
-
Implementing RSA in Python from Scratch
You are right.
What is a good idea however, is to implement a TLSv1.3 library in Visual Basic 6[1], that doesn't have any external dependencies, by embedding machine code for AES encryption generated with MSVC in the source code, that you patch into memory at runtime, by using all sorts of tricks to do things in VB6 that you aren't supposed to do in VB6. Yes, that VB6, that was released in 1998, superseded by VB.NET in 2002. Because Microsoft has just announced it's supported on Windows 11.[2] So when developing new software, why not use something future-proof?
[1] https://github.com/wqweto/VbAsyncSocket
[2] https://docs.microsoft.com/en-us/previous-versions/visualstu...
-
Are there references to be able to use TCP/IP or UDP?
After a quick Google Search, I found this: VbAsyncSocket
-
Error using OCX “Class not registered” [VBA PowerPoint]
Anyway, that link for VB6 looks poromising: https://github.com/wqweto/VbAsyncSocket - it is using calls to ws2_32,dll, so it is up to date. I'll dust off VB6 to see how it works in that version, before I try to use it with VBA. VBA is not quite the same as VB6, very similar language, but not all of the same features can be implemented.
What are some alternatives?
vba-websocket - VBA Websocket Sample (Echo Server Client)