-
Notifications
You must be signed in to change notification settings - Fork 1
Request Response
Jiowcl edited this page May 20, 2021
·
5 revisions
EnableExplicit
IncludeFile "../Core/ZeroMQ.pbi"
Global lpszLibZmqDll.s = "libzmq.dll"
Global lpszServerAddr.s = "tcp://*:1700"
Global hLibrary.i = ZmqDllOpen(lpszLibZmqDll)
If hLibrary
OpenConsole()
Define Context.i = ZmqCtxNew(hLibrary)
Define Socket.i = ZmqSocket(hLibrary, Context, #ZMQ_REP)
Define Rc.i = ZmqBind(hLibrary, Socket, lpszServerAddr)
PrintN("Bind an IP address: " + lpszServerAddr)
Define lTotal.l = 0
While 1
lTotal = lTotal + 1
Define *lpszBuffer = AllocateMemory(32)
Define lpszMessage.s = "Hi " + lTotal
ZmqRecv(hLibrary, Socket, *lpszBuffer, MemorySize(*lpszBuffer), 0)
Delay(10)
PrintN("Received: ")
PrintN( PeekS(*lpszBuffer, -1, #PB_UTF8) )
ZmqSend(hLibrary, Socket, lpszMessage, Len(lpszMessage), 0)
FreeMemory(*lpszBuffer)
Wend
ZmqClose(hLibrary, Socket)
ZmqCtxShutdown(hLibrary, Context)
CloseConsole()
ZmqDllClose(hLibrary)
EndIf
EnableExplicit
IncludeFile "../Core/ZeroMQ.pbi"
Global lpszLibZmqDll.s = "libzmq.dll"
Global lpszServerAddr.s = "tcp://localhost:1700"
Global hLibrary.i = ZmqDllOpen(lpszLibZmqDll)
If hLibrary
OpenConsole()
Define Context.i = ZmqCtxNew(hLibrary)
Define Socket.i = ZmqSocket(hLibrary, Context, #ZMQ_REQ)
Define Rc.i = ZmqConnect(hLibrary, Socket, lpszServerAddr)
PrintN("Connect to Server: " + lpszServerAddr)
Define i.i
For i = 0 To 10
Define *lpszBuffer = AllocateMemory(32)
Define lpszMessage.s = "From Client"
ZmqSend(hLibrary, Socket, lpszMessage, Len(lpszMessage), 0)
ZmqRecv(hLibrary, Socket, *lpszBuffer, MemorySize(*lpszBuffer), 0)
PrintN("Reply From Server: ")
PrintN( PeekS(*lpszBuffer, -1, #PB_UTF8) )
FreeMemory(*lpszBuffer)
Next
ZmqClose(hLibrary, Socket)
ZmqCtxShutdown(hLibrary, Context)
Input()
CloseConsole()
ZmqDllClose(hLibrary)
EndIf