Anonymous user
Echo server: Difference between revisions
m
→{{header|PureBasic}}: Put the example at the good Alphabetic place in the page
(add javascript (node.js) solution) |
m (→{{header|PureBasic}}: Put the example at the good Alphabetic place in the page) |
||
Line 1,036:
(prinl (stamp) " -- (Pid " *Pid ") Client disconnected")
(bye) # Terminate child</lang>
=={{header|PureBasic}}==▼
<lang Purebasic>NewMap RecData.s()▼
OpenWindow(0, 100, 200, 200, 100, "Echo Server", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget )▼
InitNetwork()▼
CreateNetworkServer(1, 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)▼
For i = 1 To count▼
RecData(Str(ClientID)) + Mid( PeekS(*Buffer, count), i , 1)▼
If Right( RecData(Str(ClientID)), 2) = #CRLF$▼
SendNetworkString (ClientID, RecData(Str(ClientID)))▼
Debug IPString(GetClientIP(ClientID)) + ":" + Str(GetClientPort(ClientID)) + " " + RecData(Str(ClientID))▼
RecData(Str(ClientID)) = "" ▼
EndIf▼
Next▼
FreeMemory(*Buffer)▼
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|Python}}==
Line 1,151 ⟶ 1,184:
; Parent waits for child to finish spawning grandchild
(waitpid child)))))</lang>
▲=={{header|PureBasic}}==
▲<lang Purebasic>NewMap RecData.s()
▲OpenWindow(0, 100, 200, 200, 100, "Echo Server", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget )
▲InitNetwork()
▲CreateNetworkServer(1, 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)
▲ For i = 1 To count
▲ RecData(Str(ClientID)) + Mid( PeekS(*Buffer, count), i , 1)
▲ If Right( RecData(Str(ClientID)), 2) = #CRLF$
▲ SendNetworkString (ClientID, RecData(Str(ClientID)))
▲ Debug IPString(GetClientIP(ClientID)) + ":" + Str(GetClientPort(ClientID)) + " " + RecData(Str(ClientID))
▲ RecData(Str(ClientID)) = ""
▲ EndIf
▲ Next
▲ FreeMemory(*Buffer)
▲ 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}}==
|