Echo server: Difference between revisions

Content added Content deleted
No edit summary
No edit summary
Line 834: Line 834:
end
end
end</lang>
end</lang>

=={{header|PureBasic}}==
<lang Purebasic>
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf

NewMap RecData.s()

OpenWindow(0, 100, 200, 200, 100, "Echo Server", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget )

CreateNetworkServer(0, 12321)

Repeat
Event = NetworkServerEvent()
ClientID = EventClient()
If Event = #PB_NetworkEvent_Connect ; When a new client has been connected...
AddMapElement(RecData(), Str(ClientID))
ElseIf Event = #PB_NetworkEvent_Data
*Buffer = AllocateMemory(20000)
count = ReceiveNetworkData(ClientID, *Buffer, 20000)
Buffer$ = PeekS(*Buffer, count)
FreeMemory(*Buffer)
For i = 1 To count
Char$ = Mid( Buffer$, i , 1)
If Char$ = #CRLF$
SendNetworkString(ClientID, RecData(Str(ClientID)))
RecData(Str(ClientID)) = ""
Else
RecData(Str(ClientID)) + Char$
EndIf
Next
ElseIf Event = #PB_NetworkEvent_Disconnect ; When a client has closed the connection...
DeleteMapElement(RecData(), Str(ClientID))
EndIf

Event = WaitWindowEvent(10)
Until Event = #PB_Event_CloseWindow
</lang>




=={{header|Tcl}}==
=={{header|Tcl}}==