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}}== |