Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  4. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  5.  
  6. Public Sub OnServerAccept(ByVal Selector As IoSocketSelector, ByVal Socket As Long)
  7.     Debug.Print "OnServerAccept [" + CStr(Socket) + "] => " + Selector.GetAddress(Socket)
  8. End Sub
  9.  
  10. Public Sub OnServerDisconnect(ByVal Selector As IoSocketSelector, ByVal Socket As Long)
  11.     Debug.Print "OnServerDisconnect [" + CStr(Socket) + "]"
  12. End Sub
  13.  
  14. Public Sub OnServerError(ByVal Selector As IoSocketSelector, ByVal Error As Long)
  15.     Debug.Print "OnServerError " + CStr(Error)
  16. End Sub
  17.  
  18. Public Sub OnServerRead(ByVal Selector As IoSocketSelector, ByVal Socket As Long, ByVal Pointer As Long, ByVal Transferred As Long)
  19.     Debug.Print "OnServerRead [" + CStr(Socket) + "] => " + CStr(Transferred)
  20.    
  21.     ' NOTA: Ya que tamos haciendo ping pong, sino Io agarria todo el CPU, solo en este caso esto va aqui
  22.    DoEvents
  23.    
  24.     Call Selector.Write(Socket, Pointer, Transferred)
  25. End Sub
  26.  
  27. Public Sub OnServerWrite(ByVal Selector As IoSocketSelector, ByVal Socket As Long, ByVal Transferred As Long)
  28.     Debug.Print "OnServerWrite [" + CStr(Socket) + "] => " + CStr(Transferred)
  29. End Sub
  30.  
  31. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  32. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  33.  
  34. Public Sub OnClientConnect(ByVal Socket As IoSocket)
  35.     Debug.Print "OnClientConnect"
  36.  
  37.     Call Socket.Write(StrPtr("Hola"), 8) ' Unicode
  38. End Sub
  39.  
  40. Public Sub OnClientDisconnect(ByVal Socket As IoSocket, ByVal Reason As Long)
  41.     Debug.Print "OnClientDisconnect"
  42.    
  43.     Set Socket = Nothing
  44. End Sub
  45.  
  46. Public Sub OnClientRead(ByVal Socket As IoSocket, ByVal Pointer As Long, ByVal Transferred As Long)
  47.     Debug.Print "OnClientRead: " + CStr(Transferred)
  48.    
  49.     Call Socket.Write(Pointer, Transferred)
  50. End Sub
  51.  
  52. Public Sub OnClientWrite(ByVal Socket As IoSocket, ByVal Transferred As Long)
  53.     Debug.Print "OnClientWrite: " + CStr(Transferred)
  54. End Sub
  55.  
  56.  
  57. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  58. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  59.  
  60. Public Sub Main()
  61.    
  62.     Dim Server As New IoSocketSelector
  63.  
  64.     Call Server.SetOnAccept(AddressOf OnServerAccept)
  65.     Call Server.SetOnDisconnect(AddressOf OnServerDisconnect)
  66.     Call Server.SetOnError(AddressOf OnServerError)
  67.     Call Server.SetOnRead(AddressOf OnServerRead)
  68.     Call Server.SetOnWrite(AddressOf OnServerWrite)
  69.     Call Server.Listen(7666)
  70.        
  71.     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  72.    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  73.    
  74.     Dim Client(2) As New IoSocket
  75.    
  76.     For I = 0 To 1
  77.  
  78.         Call Client(I).SetOnConnect(AddressOf OnClientConnect)
  79.         Call Client(I).SetOnDisconnect(AddressOf OnClientDisconnect)
  80.         Call Client(I).SetOnRead(AddressOf OnClientRead)
  81.         Call Client(I).SetOnWrite(AddressOf OnClientWrite)
  82.        
  83.         Call Client(I).Connect("127.0.0.1", 7666)
  84.     Next I
  85.          
  86.     ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  87.    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  88.    
  89.     While (True)
  90.         DoEvents
  91.    
  92.         Io.Poll
  93.     Wend
  94. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement