Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- Public Sub OnServerAccept(ByVal Selector As IoSocketSelector, ByVal Socket As Long)
- Debug.Print "OnServerAccept [" + CStr(Socket) + "] => " + Selector.GetAddress(Socket)
- End Sub
- Public Sub OnServerDisconnect(ByVal Selector As IoSocketSelector, ByVal Socket As Long)
- Debug.Print "OnServerDisconnect [" + CStr(Socket) + "]"
- End Sub
- Public Sub OnServerError(ByVal Selector As IoSocketSelector, ByVal Error As Long)
- Debug.Print "OnServerError " + CStr(Error)
- End Sub
- Public Sub OnServerRead(ByVal Selector As IoSocketSelector, ByVal Socket As Long, ByVal Pointer As Long, ByVal Transferred As Long)
- Debug.Print "OnServerRead [" + CStr(Socket) + "] => " + CStr(Transferred)
- ' NOTA: Ya que tamos haciendo ping pong, sino Io agarria todo el CPU, solo en este caso esto va aqui
- DoEvents
- Call Selector.Write(Socket, Pointer, Transferred)
- End Sub
- Public Sub OnServerWrite(ByVal Selector As IoSocketSelector, ByVal Socket As Long, ByVal Transferred As Long)
- Debug.Print "OnServerWrite [" + CStr(Socket) + "] => " + CStr(Transferred)
- End Sub
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- Public Sub OnClientConnect(ByVal Socket As IoSocket)
- Debug.Print "OnClientConnect"
- Call Socket.Write(StrPtr("Hola"), 8) ' Unicode
- End Sub
- Public Sub OnClientDisconnect(ByVal Socket As IoSocket, ByVal Reason As Long)
- Debug.Print "OnClientDisconnect"
- Set Socket = Nothing
- End Sub
- Public Sub OnClientRead(ByVal Socket As IoSocket, ByVal Pointer As Long, ByVal Transferred As Long)
- Debug.Print "OnClientRead: " + CStr(Transferred)
- Call Socket.Write(Pointer, Transferred)
- End Sub
- Public Sub OnClientWrite(ByVal Socket As IoSocket, ByVal Transferred As Long)
- Debug.Print "OnClientWrite: " + CStr(Transferred)
- End Sub
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- Public Sub Main()
- Dim Server As New IoSocketSelector
- Call Server.SetOnAccept(AddressOf OnServerAccept)
- Call Server.SetOnDisconnect(AddressOf OnServerDisconnect)
- Call Server.SetOnError(AddressOf OnServerError)
- Call Server.SetOnRead(AddressOf OnServerRead)
- Call Server.SetOnWrite(AddressOf OnServerWrite)
- Call Server.Listen(7666)
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- Dim Client(2) As New IoSocket
- For I = 0 To 1
- Call Client(I).SetOnConnect(AddressOf OnClientConnect)
- Call Client(I).SetOnDisconnect(AddressOf OnClientDisconnect)
- Call Client(I).SetOnRead(AddressOf OnClientRead)
- Call Client(I).SetOnWrite(AddressOf OnClientWrite)
- Call Client(I).Connect("127.0.0.1", 7666)
- Next I
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- While (True)
- DoEvents
- Io.Poll
- Wend
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement