ich habe soeben zu Test-Zwecken einen kleinen TCP-Client erstellt,
mit der Absicht mich einfach mal mit einem HTTP-Server zu verbinden
und das geballte RAW HTTP bzw. mittels eines einfachen HTTP Befehls
den Inhalt einer Webseite zu empfangen. Doch irgendwas klappt da nicht!
Wenn ich den unten stehenden Code ausführe, funktioniert dieser an sich wunderbar
endet jedoch leider mit dem implementierten Timeout, ohne das ich irgendwelche
Daten von der Webseite erhalten habe, und obwohl es eine Verbindung gegeben hat.
Nun frage ich mich, wieso ist das so? Was habe ich evtl übersehen bzw falsch gemacht
Code: Alles auswählen
;;; Shamos Client Example
;;; TAB SIZE = 3
c=0
Port = 21172
BufferSize = 2048
*Buffer = AllocateMemory(BufferSize)
OpenConsole("Shamos CLIENT Example")
EnableGraphicalConsole(1)
ConsoleColor(0,7)
ClearConsole()
PrintN( "This is an Shamos Client Example" )
PrintN("")
If InitNetwork() <> 0
ConnectionID = OpenNetworkConnection( "google.de", 80 )
If ConnectionID
PrintN( "Connected to Server" )
SendNetworkString( ConnectionID, "GET /index.html HTTP/1.1", #PB_UTF8 )
PrintN("")
Repeat
CEvent = NetworkClientEvent(ConnectionID)
Select CEvent
Case #PB_NetworkEvent_Data
bs = ReceiveNetworkData( ConnectionID, *Buffer, BufferSize )
If bs<>0
PrintN( "SERVER has send a packet with "+Str(bs)+" Characters." )
PrintN( "=============[BEGIN]=============" );
PrintN( PeekS( *Buffer, bs , #PB_UTF8 ) )
PrintN("")
PrintN( "==============[END]==============" );
ServerQuit = 1
EndIf
Case #PB_NetworkEvent_Disconnect
ServerQuit = 1
PrintN( "Server has Terminated the Connection" )
EndSelect
c+1
If c>2000
PrintN( "TIMEOUT" )
ServerQuit = 1
EndIf
Delay(1)
Until ServerQuit = 1
CloseNetworkConnection( ConnectionID )
Else
PrintN( "Can't Connect to the Server - Server not reachable." )
EndIf
Else;InitNetwork
PrintN( "Can't initialize the network !" )
EndIf;InitNetwork
PrintN("")
PrintN( "<<<<<< PROGRAM END - PRESS [ENTER] TO CONTINUE >>>>>>" )
Input()
ConsoleColor(7,0)
ClearConsole()
CloseConsole()
End