Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Sockets Frage...

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 02.09.2007, 17:19    Titel: Sockets Frage... Antworten mit Zitat

Hallo!
Mir ist dieser Topic bekannt, allerdings sind ein paar Fragen noch da:
-Es muss mit den Win-Sockets realisiert sein.
-Wie übertrage ich da die POST-Daten, und wie bekomme ich das, was das Skript vermeldet zurück?
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 02.09.2007, 19:16    Titel: Antworten mit Zitat

OK, ich dachte zuerst SDL wäre zugross, aber es geht doch xD
Ok, aber das hier funzt net:
Code:
#INCLIB "SDL_net"
'Global Information from SDL_net
 TYPE Uint16 AS USHORT
 TYPE Uint32 AS UINTEGER

 TYPE IPaddress
   host AS Uint32
   port AS Uint16
 END TYPE


 TYPE TCPsocket AS _TCPsocket PTR

 EXTERN "c"
  DECLARE FUNCTION SDLNet_Init () AS INTEGER
  DECLARE FUNCTION SDLNet_ResolveHost (BYVAL address AS IPaddress PTR, BYVAL host AS ZSTRING PTR, BYVAL port AS Uint16) AS INTEGER
  DECLARE FUNCTION SDLNet_TCP_Open (BYVAL ip AS IPaddress PTR, BYVAL Port AS INTEGER=80) AS TCPsocket
  DECLARE FUNCTION SDLNet_TCP_Recv (BYVAL sock AS TCPsocket, BYVAL DATA AS ANY PTR, BYVAL maxlen AS INTEGER) AS INTEGER
  DECLARE FUNCTION SDLNet_TCP_Send (BYVAL sock AS TCPsocket, BYVAL DATA AS ANY PTR, BYVAL LEN AS INTEGER) AS INTEGER
  DECLARE SUB SDLNet_TCP_Close (BYVAL sock AS TCPsocket)
  DECLARE SUB SDLNet_Quit ()
 END EXTERN

'Standart COLOR: RGB(255, 163, 79);">HTTP Functions

CONST recv_timeout = 5 '100 seconds
CONST RECVBUFFLEN = 8192
CONST NEWLINE = !"\r\n"
CONST Referer = ""

DECLARE FUNCTION TCP_open (BYVAL hostname AS STRING, BYVAL Port AS INTEGER=80) AS TCPSocket
DECLARE FUNCTION TCP_http (BYVAL method AS STRING="GET", BYVAL Socket AS TCPSocket, BYVAL hostname AS STRING, BYVAL path AS STRING="") AS INTEGER
DECLARE FUNCTION TCP_recv (BYVAL socket AS TCPSocket) AS STRING
DECLARE FUNCTION TCP_close (BYVAL socket AS TCPSocket) AS INTEGER


'****************************************************************
FUNCTION TCP_open (BYVAL hostname AS STRING, BYVAL Port AS INTEGER=80) AS TCPSocket
'****************************************************************       
   '' init
   IF( SDLNet_Init <> 0 ) THEN
      'PRINT "ERROR: SDLNet_Init failed"
      RETURN 0
   END IF
                         
   '' resolve
   DIM ip AS IPAddress
    DIM socket AS TCPSocket
   
    IF( SDLNet_ResolveHost( @ip, hostname, Port ) <> 0 ) THEN
      'PRINT "ERROR: SDLNet_ResolveHost failed"
      RETURN 0
   END IF
   
    '' OPEN
    socket = SDLNet_TCP_Open( @ip )
    IF( socket = 0 ) THEN
      'PRINT "ERROR: SDLNet_TCP_Open failed"
      RETURN 0
   END IF

    RETURN socket
'****************************************************************
END FUNCTION 'TCP_open
'****************************************************************


'****************************************************************
FUNCTION TCP_http (BYVAL method AS STRING="GET", _
                   BYVAL Socket AS TCPSocket, _
                   BYVAL hostname AS STRING, _
                   BYVAL path AS STRING="") AS INTEGER
'****************************************************************   
   
    '' send COLOR: RGB(255, 163, 79);">HTTP request
    DIM sendbuffer AS STRING
    DIM MString AS STRING
   
    SELECT CASE LCASE (method)
        CASE "post"
            MString="POST /"
        CASE ELSE
            MString="GET /"
    END SELECT
       
   
    SendBuffer= _
    MString+path+"HTTP/1.1"+NEWLINE+ _
    "Connection: CLOSE"+NEWLINE
   
    '"Host: "+hostname+NEWLINE+ _
    '"Connection: CLOSE"+NEWLINE
   
    'IF MString="POST" THEN SendBuffer+= _
    '"Accept-ENCODING: gzip"+NEWLINE
   
    SendBuffer+= _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"+NEWLINE
    '"Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"+NEWLINE+ _
    '"Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"+NEWLINE+ _
    '"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"+NEWLINE+ _
    '"Referer: "+Referer+NEWLINE
   
    IF MString="POST /" THEN SendBuffer+= _
    "Content-TYPE: application/x-www-form-urlencoded"+NEWLINE           
   
    SendBuffer+=NEWLINE
   
    IF( SDLNet_TCP_Send( socket, STRPTR( sendbuffer ), LEN( sendbuffer ) ) < LEN( sendbuffer ) ) THEN
      'PRINT "ERROR: SDLNet_TCP_Send failed"
      RETURN -1
   END IF
    RETURN 0
'****************************************************************   
END FUNCTION 'TCP_http
'****************************************************************


'****************************************************************
FUNCTION TCP_recv (BYVAL socket AS TCPSocket) AS STRING
'****************************************************************   
    DIM TimeOut AS SINGLE
    DIM TimeOutX AS SINGLE
    TimeOut=TIMER
    '' receive til connection IS closed
    DIM recvbuffer AS ZSTRING * RECVBUFFLEN+1
    DIM recv_Buffer AS STRING
    DIM bytes AS INTEGER
   
    DO
        IF TimeOutX>recv_TimeOut THEN EXIT DO
       
        bytes = SDLNet_TCP_Recv( socket, STRPTR( recvbuffer ), RECVBUFFLEN )
       
        IF( bytes <= 0 ) THEN
          'SLEEP (100),1
            EXIT DO
       ELSE
            timeout=TIMER
        END IF
       
       '' ADD the null-terminator
       
        recvbuffer[bytes] = 0
       '' PRINT it AS STRING
       'PRINT recvbuffer;
       
        recv_Buffer+=recvbuffer
       
        TimeOutX=TIMER-TimeOut
    LOOP WHILE INSTR(LCASE(recvbuffer),"</html>")=0
   
    RETURN recv_Buffer
'****************************************************************
END FUNCTION 'TCP_recv
'****************************************************************
                         
   
'****************************************************************
FUNCTION TCP_close (BYVAL socket AS TCPSocket) AS INTEGER
'****************************************************************   
    '' CLOSE socket
   SDLNet_TCP_Close( socket )
   
   '' quit
   SDLNet_Quit
    RETURN 0
'****************************************************************   
END FUNCTION 'TCP_close
'****************************************************************   

dim my as TCPSocket
my=TCP_open ("http://csderats.cs.funpic.de", 80)
TCP_http (, _
                   my, _
                   "http://csderats.cs.funpic.de", _
                   "/")
print TCP_recv (my)
TCP_close (my)
sleep
end


_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 02.09.2007, 19:29    Titel: Antworten mit Zitat

lass mal die http:// und den / wenn kein path ist, weg....


Code:

my=TCP_open ("csderats.cs.funpic.de", 80)
TCP_http (, _
                   my, _
                   "csderats.cs.funpic.de", _
                   "")
print TCP_recv (my)
TCP_close (my)
sleep
end


sollte gehen zwinkern

Edit: die SDL funktionen lassen sich auch fast 1:1 fuer Winsock uebernehmen, die Funktionen haben nur etwas andere namen, aber von der Funktion her sind sie soweit ich noch weiss, gleich....
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 02.09.2007, 19:45    Titel: Antworten mit Zitat

Merkwürdig verwundert

Bei mir kommt das hier raus (Mit deiner Änderung):

Code:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://404.funpic.de/404.html">here</a>.</p>
</body></html>

_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 02.09.2007, 19:56    Titel: Antworten mit Zitat

ich konnte jetzt nicht alle aenderungen die Du gemacht hast ueberblicken, aber mit den Original so wie ich es in dem anderen Thread gepostet habe, gehts....

Edit:
Code:
dim my as TCPSocket

gehort noch dazu lächeln
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 02.09.2007, 19:58    Titel: Antworten mit Zitat

Hmm.
0.18.1b

Zitat:
M:\\fbc -s console "SDL_net.bas"
SDL_net.bas(83) error 41: Variable not declared, post in 'CASE "COLOR: RGB(255, 163, 79);">post"'
SDL_net.bas(83) warning 12(0): Implicit variable allocation, post
SDL_net.bas(83) error 3: Expected End-of-Line in 'CASE "COLOR: RGB(255, 163, 79);">post"'
SDL_net.bas(84) error 21: Type mismatch in 'MString="COLOR: RGB(255, 163, 79);">POST /"'
SDL_net.bas(91) error 41: Variable not declared, HTTP in 'MString+path+" COLOR: RGB(255, 163, 79);">HTTP/1.1"+NEWLINE+ _'
SDL_net.bas(91) warning 12(0): Implicit variable allocation, HTTP
SDL_net.bas(92) error 109: Cannot modify a constant, before '+' in '"Host: "+hostname+NEWLINE+ _'
SDL_net.bas(95) error 21: Type mismatch in 'IF MString="COLOR: RGB(255, 163, 79);">POST /" THEN SendBuffer+= _'
SDL_net.bas(96) error 109: Cannot modify a constant, before '+' in '"Accept-ENCODING: gzip"+NEWLINE'
SDL_net.bas(105) error 21: Type mismatch in 'IF MString="COLOR: RGB(255, 163, 79);">POST /" THEN SendBuffer+= _'
SDL_net.bas(106) error 109: Cannot modify a constant, before '+' in '"Content-TYPE: application/x-www-form-urlencoded"+NEWLINE'
SDL_net.bas(116) error 33: Expected 'END IF', found 'END' in 'END FUNCTION 'TCP_http'
SDL_net.bas(116) error 123: Too many errors, exiting

Build error(s)

neutral

Scheint wohl so, als ob er mit dem " COLOR: RGB(255, 163, 79);"> nicht klarkommen würde verwundert
Was heißt das überhaupt??
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 02.09.2007, 19:59    Titel: Antworten mit Zitat

Code:
'----------------------------------------------------------------------------------------------------------------------------------------------------------'
#INCLIB "SDL_net"
'Global Information from SDL_net
 TYPE Uint16 AS USHORT
 TYPE Uint32 AS UINTEGER

 TYPE IPaddress
   host AS Uint32
   port AS Uint16
 END TYPE


 TYPE TCPsocket AS _TCPsocket PTR

 EXTERN "c"
  DECLARE FUNCTION SDLNet_Init () AS INTEGER
  DECLARE FUNCTION SDLNet_ResolveHost (BYVAL address AS IPaddress PTR, BYVAL host AS ZSTRING PTR, BYVAL port AS Uint16) AS INTEGER
  DECLARE FUNCTION SDLNet_TCP_Open (BYVAL ip AS IPaddress PTR, BYVAL Port AS INTEGER=80) AS TCPsocket
  DECLARE FUNCTION SDLNet_TCP_Recv (BYVAL sock AS TCPsocket, BYVAL DATA AS ANY PTR, BYVAL maxlen AS INTEGER) AS INTEGER
  DECLARE FUNCTION SDLNet_TCP_Send (BYVAL sock AS TCPsocket, BYVAL DATA AS ANY PTR, BYVAL LEN AS INTEGER) AS INTEGER
  DECLARE SUB SDLNet_TCP_Close (BYVAL sock AS TCPsocket)
  DECLARE SUB SDLNet_Quit ()
 END EXTERN

'----------------------------------------------------------------------------------------------------------------------------------------------------------'
'Standart HTTP Functions

CONST recv_timeout = 5 '100 seconds
CONST RECVBUFFLEN = 8192
CONST NEWLINE = !"\r\n"
CONST Referer = ""

DECLARE FUNCTION TCP_open (BYVAL hostname AS STRING, BYVAL Port AS INTEGER=80) AS TCPSocket
DECLARE FUNCTION TCP_http (BYVAL method AS STRING="GET", BYVAL Socket AS TCPSocket, BYVAL hostname AS STRING, BYVAL path AS STRING="") AS INTEGER
DECLARE FUNCTION TCP_recv (BYVAL socket AS TCPSocket) AS STRING
DECLARE FUNCTION TCP_close (BYVAL socket AS TCPSocket) AS INTEGER

'----------------------------------------------------------------------------------------------------------------------------------------------------------'

'****************************************************************
FUNCTION TCP_open (BYVAL hostname AS STRING, BYVAL Port AS INTEGER=80) AS TCPSocket
'****************************************************************       
   '' init
   IF( SDLNet_Init <> 0 ) THEN
      'PRINT "ERROR: SDLNet_Init failed"
      RETURN 0
   END IF
                         
   '' resolve
   DIM ip AS IPAddress
    DIM socket AS TCPSocket
   
    IF( SDLNet_ResolveHost( @ip, hostname, Port ) <> 0 ) THEN
      'PRINT "ERROR: SDLNet_ResolveHost failed"
      RETURN 0
   END IF
   
    '' OPEN
    socket = SDLNet_TCP_Open( @ip )
    IF( socket = 0 ) THEN
      'PRINT "ERROR: SDLNet_TCP_Open failed"
      RETURN 0
   END IF

    RETURN socket
'****************************************************************
END FUNCTION 'TCP_open
'****************************************************************


'****************************************************************
FUNCTION TCP_http (BYVAL method AS STRING="GET", _
                   BYVAL Socket AS TCPSocket, _
                   BYVAL hostname AS STRING, _
                   BYVAL path AS STRING="") AS INTEGER
'****************************************************************   
   
    '' send HTTP request
    DIM sendbuffer AS STRING
    DIM MString AS STRING
   
    SELECT CASE LCASE (method)
        CASE "post"
            MString="POST /"
        CASE ELSE
            MString="GET /"
    END SELECT
       
   
    SendBuffer= _
    MString+path+" HTTP/1.1"+NEWLINE+ _
    "Host: "+hostname+NEWLINE+ _
    "Connection: CLOSE"+NEWLINE
   
    IF MString="POST /" THEN SendBuffer+= _
    "Accept-ENCODING: gzip"+NEWLINE
   
    SendBuffer+= _
    "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"+NEWLINE+ _
    "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"+NEWLINE+ _
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"+NEWLINE+ _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"+NEWLINE+ _
    "Referer: "+Referer+NEWLINE
   
    IF MString="POST /" THEN SendBuffer+= _
    "Content-TYPE: application/x-www-form-urlencoded"+NEWLINE           
   
    SendBuffer+=NEWLINE
   
    IF( SDLNet_TCP_Send( socket, STRPTR( sendbuffer ), LEN( sendbuffer ) ) < LEN( sendbuffer ) ) THEN
      'PRINT "ERROR: SDLNet_TCP_Send failed"
      RETURN -1
   END IF
    RETURN 0
'****************************************************************   
END FUNCTION 'TCP_http
'****************************************************************


'****************************************************************
FUNCTION TCP_recv (BYVAL socket AS TCPSocket) AS STRING
'****************************************************************   
    DIM TimeOut AS SINGLE
    DIM TimeOutX AS SINGLE
    TimeOut=TIMER
    '' receive til connection IS closed
    DIM recvbuffer AS ZSTRING * RECVBUFFLEN+1
    DIM recv_Buffer AS STRING
    DIM bytes AS INTEGER
   
    DO
        IF TimeOutX>recv_TimeOut THEN EXIT DO
       
        bytes = SDLNet_TCP_Recv( socket, STRPTR( recvbuffer ), RECVBUFFLEN )
       
        IF( bytes <= 0 ) THEN
          'SLEEP (100),1
            EXIT DO
       ELSE
            timeout=TIMER
        END IF
       
       '' ADD the null-terminator
       
        recvbuffer[bytes] = 0
       '' PRINT it AS STRING
       'PRINT recvbuffer;
       
        recv_Buffer+=recvbuffer
       
        TimeOutX=TIMER-TimeOut
    LOOP WHILE INSTR(LCASE(recvbuffer),"</html>")=0
   
    RETURN recv_Buffer
'****************************************************************
END FUNCTION 'TCP_recv
'****************************************************************
                         
   
'****************************************************************
FUNCTION TCP_close (BYVAL socket AS TCPSocket) AS INTEGER
'****************************************************************   
    '' CLOSE socket
   SDLNet_TCP_Close( socket )
   
   '' quit
   SDLNet_Quit
    RETURN 0
'****************************************************************   
END FUNCTION 'TCP_close
'****************************************************************   

'----------------------------------------------------------------------------------------------------------------------------------------------------------'

dim my as TCPSocket
my=TCP_open ("csderats.cs.funpic.de", 80)
TCP_http (, _
                   my, _
                   "csderats.cs.funpic.de", _
                   "")
PRINT TCP_recv (my)
TCP_close (my)
SLEEP
END


gleiche FBC keine fehler happy
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 02.09.2007, 20:01    Titel: Antworten mit Zitat

verlegen grade habe ich eine Lösung gefunden die geht:
Code:
'----------------------------------------------------------------------------------------------------------------------------------------------------------'
#INCLIB "SDL_net"
'Global Information from SDL_net
 TYPE Uint16 AS USHORT
 TYPE Uint32 AS UINTEGER

 TYPE IPaddress
   host AS Uint32
   port AS Uint16
 END TYPE


 TYPE TCPsocket AS _TCPsocket PTR

 EXTERN "c"
  DECLARE FUNCTION SDLNet_Init () AS INTEGER
  DECLARE FUNCTION SDLNet_ResolveHost (BYVAL address AS IPaddress PTR, BYVAL host AS ZSTRING PTR, BYVAL port AS Uint16) AS INTEGER
  DECLARE FUNCTION SDLNet_TCP_Open (BYVAL ip AS IPaddress PTR, BYVAL Port AS INTEGER=80) AS TCPsocket
  DECLARE FUNCTION SDLNet_TCP_Recv (BYVAL sock AS TCPsocket, BYVAL DATA AS ANY PTR, BYVAL maxlen AS INTEGER) AS INTEGER
  DECLARE FUNCTION SDLNet_TCP_Send (BYVAL sock AS TCPsocket, BYVAL DATA AS ANY PTR, BYVAL LEN AS INTEGER) AS INTEGER
  DECLARE SUB SDLNet_TCP_Close (BYVAL sock AS TCPsocket)
  DECLARE SUB SDLNet_Quit ()
 END EXTERN

'----------------------------------------------------------------------------------------------------------------------------------------------------------'
'Standart COLOR: RGB(255, 163, 79);">HTTP Functions

CONST recv_timeout = 5 '100 seconds
CONST RECVBUFFLEN = 8192
CONST NEWLINE = !"\r\n"
CONST Referer = ""

DECLARE FUNCTION TCP_open (BYVAL hostname AS STRING, BYVAL Port AS INTEGER=80) AS TCPSocket
DECLARE FUNCTION TCP_http (BYVAL method AS STRING="GET", BYVAL Socket AS TCPSocket, BYVAL hostname AS STRING, BYVAL path AS STRING="") AS INTEGER
DECLARE FUNCTION TCP_recv (BYVAL socket AS TCPSocket) AS STRING
DECLARE FUNCTION TCP_close (BYVAL socket AS TCPSocket) AS INTEGER

'----------------------------------------------------------------------------------------------------------------------------------------------------------'

'****************************************************************
FUNCTION TCP_open (BYVAL hostname AS STRING, BYVAL Port AS INTEGER=80) AS TCPSocket
'****************************************************************       
   '' init
   IF( SDLNet_Init <> 0 ) THEN
      'PRINT "ERROR: SDLNet_Init failed"
      RETURN 0
   END IF
                         
   '' resolve
   DIM ip AS IPAddress
    DIM socket AS TCPSocket
   
    IF( SDLNet_ResolveHost( @ip, hostname, Port ) <> 0 ) THEN
      'PRINT "ERROR: SDLNet_ResolveHost failed"
      RETURN 0
   END IF
   
    '' OPEN
    socket = SDLNet_TCP_Open( @ip )
    IF( socket = 0 ) THEN
      'PRINT "ERROR: SDLNet_TCP_Open failed"
      RETURN 0
   END IF

    RETURN socket
'****************************************************************
END FUNCTION 'TCP_open
'****************************************************************


'****************************************************************
FUNCTION TCP_http (BYVAL method AS STRING="GET", _
                   BYVAL Socket AS TCPSocket, _
                   BYVAL hostname AS STRING, _
                   BYVAL path AS STRING="") AS INTEGER
'****************************************************************   
   
    '' send COLOR: RGB(255, 163, 79);">HTTP request
    DIM sendbuffer AS STRING
    DIM MString AS STRING
   
    SELECT CASE LCASE (method)
        CASE "COLOR: RGB(255, 163, 79);>post"
            MString="COLOR: RGB(255, 163, 79);>POST /"
        CASE ELSE
            MString="GET /"
    END SELECT
       
   
    SendBuffer= _
    MString+path+" COLOR: RGB(255, 163, 79);>HTTP/1.1"+NEWLINE+ _
    "Host: "+hostname+NEWLINE+ _
    "Connection: CLOSE"+NEWLINE
   
    IF MString="COLOR: RGB(255, 163, 79);>POST /" THEN SendBuffer+= _
    "Accept-ENCODING: gzip"+NEWLINE
   
    SendBuffer+= _
    "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"+NEWLINE+ _
    "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"+NEWLINE+ _
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"+NEWLINE+ _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"+NEWLINE+ _
    "Referer: "+Referer+NEWLINE
   
    IF MString="COLOR: RGB(255, 163, 79);>POST /" THEN SendBuffer+= _
    "Content-TYPE: application/x-www-form-urlencoded"+NEWLINE           
   
    SendBuffer+=NEWLINE
   
    IF( SDLNet_TCP_Send( socket, STRPTR( sendbuffer ), LEN( sendbuffer ) ) < LEN( sendbuffer ) ) THEN
      'PRINT "ERROR: SDLNet_TCP_Send failed"
      RETURN -1
   END IF
    RETURN 0
'****************************************************************   
END FUNCTION 'TCP_http
'****************************************************************


'****************************************************************
FUNCTION TCP_recv (BYVAL socket AS TCPSocket) AS STRING
'****************************************************************   
    DIM TimeOut AS SINGLE
    DIM TimeOutX AS SINGLE
    TimeOut=TIMER
    '' receive til connection IS closed
    DIM recvbuffer AS ZSTRING * RECVBUFFLEN+1
    DIM recv_Buffer AS STRING
    DIM bytes AS INTEGER
   
    DO
        IF TimeOutX>recv_TimeOut THEN EXIT DO
       
        bytes = SDLNet_TCP_Recv( socket, STRPTR( recvbuffer ), RECVBUFFLEN )
       
        IF( bytes <= 0 ) THEN
          'SLEEP (100),1
            EXIT DO
       ELSE
            timeout=TIMER
        END IF
       
       '' ADD the null-terminator
       
        recvbuffer[bytes] = 0
       '' PRINT it AS STRING
       'PRINT recvbuffer;
       
        recv_Buffer+=recvbuffer
       
        TimeOutX=TIMER-TimeOut
    LOOP WHILE INSTR(LCASE(recvbuffer),"</html>")=0
   
    RETURN recv_Buffer
'****************************************************************
END FUNCTION 'TCP_recv
'****************************************************************
                         
   
'****************************************************************
FUNCTION TCP_close (BYVAL socket AS TCPSocket) AS INTEGER
'****************************************************************   
    '' CLOSE socket
   SDLNet_TCP_Close( socket )
   
   '' quit
   SDLNet_Quit
    RETURN 0
'****************************************************************   
END FUNCTION 'TCP_close
'****************************************************************   

'----------------------------------------------------------------------------------------------------------------------------------------------------------'


(Deine probiere ich gleich aus..)
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 02.09.2007, 20:02    Titel: Antworten mit Zitat

keine ahnung was Du mit dem ''Scheint wohl so, als ob er mit dem " COLOR: RGB(255, 163, 79);"> nicht klarkommen würde'' versucht hast... aber es heistt eigentlich Color RGB(wert,wert,wert)
dann evtl locate
und dann print durchgeknallt
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 02.09.2007, 20:04    Titel: Antworten mit Zitat

Der Orig. Code:
Code:
IF MString="COLOR: RGB(255, 163, 79);">POST /" THEN SendBuffer+= _
    "Content-TYPE: application/x-www-form-urlencoded"+NEWLINE           
   


Hmm
wird zu
Code:
IF MString="COLOR: RGB(255, 163, 79);>POST /" THEN SendBuffer+= _
    "Content-TYPE: application/x-www-form-urlencoded"+NEWLINE           
   

frisst der Compiler, und funzt. zwinkern
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 02.09.2007, 20:13    Titel: Antworten mit Zitat

das DAS funtioniert bezweifle ich grinsen Du veraenderst damit ja nur die Post anfrage zu irgendwas das der Server vermutlich nicht als Post anfrage verstehen wird... ausserdem ist es nur ein ausbaufaehiges skript zum testen.. ich hab damit zB meine ganzen Wiki funktionen erstellnt, des Recv allerdings hab ich in jeder funktion individuell und extra angepasst.. damitt je nachdem was mit den Daten geschehen soll es gleich weiter verarbeitet wird... wenn Du also etwas in anderer Farbe gestalten willst, schreib Dir eine extra funktion mit der recv routine... diese recv-'Basis'-Funktion ist nur zum schnellen testen geeignet, weniger zum weiterverarbeiten....
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz