my chatterbot needs company

thanks in advance!
Id suggest you check out how a HTTP Header is composed.Http operates on what is called a request-response paradigm. This means that a _client_ generates a request for information, and passes it to the server, which answers it. In the original implementation of HTTP, each request created a new socket connection to the server, sent the request, then read from that connection to get the response.
This approach had one big advantage - it was simple. Simple to describe, simple to understand, and simple to code. It also had one big disadvantage - it was slow. So, keep-alive connections were invented for HTTP.
Code: Select all
com$="HEAD "+url$+" HTTP/1.1"+Chr(13)+Chr(10)
com$+"Accept: */*"+Chr(13)+Chr(10)
com$+"Host: "+host$+Chr(13)+Chr(10)
com$+"User-Agent: PureDownload 1.0"+Chr(13)+Chr(10)
If proxy$<>""
com$+"Proxy-Authorization: Basic "+penc$+Chr(13)+Chr(10)
EndIf
Code: Select all
InitNetwork()
port = 80
server$ = "195.58.165.211"
eol$ = Chr(13)+Chr(10)
chatmessage$ = "TEST!"
ConnectionID = OpenNetworkConnection(server$, port)
If ConnectionID
SendNetworkString(ConnectionID, "GET /chatin?SID=241561026&ID=1898464651&OUT="+chatmessage$+" HTTP/1.0"+eol$)
SendNetworkString(ConnectionID, "Connection: Keep-Alive"+eol$)
SendNetworkString(ConnectionID, eol$)
EndIf
end
Code: Select all
[size=9];
;
; Connect to Chat.at and chat!
;
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf
Global port
port = 80
Global server$
server$ = "195.58.165.211"
Global sid$
Global id$
Global eol
eol$ = Chr(13)+Chr(10)
Global postfix$
postfix$ = " HTTP/1.0"+eol$
bufferLength=12040
Global nickname$
nickname$ = "PureBasic"
Global http$
http$ = " HTTP/1.1"
Global pw$
pw$ = ""
Global channel$
channel$ = "Foyer"
Procedure.s URLGet(url$)
get.s = "GET "+url$+http$ + Chr(13) + Chr(10)
If http$ = " HTTP/1.1"
get + "Host : "+server$+":"+Str(port)+Chr(13)+Chr(10)
EndIf
get + "Accept : */*" + Chr(13) + Chr(10)
; get + "Connection: Stay-Alive"+ Chr(13) + Chr(10)
get + Chr(13) + Chr(10)
ProcedureReturn get
EndProcedure
Procedure.s ChatOut()
get.s = "GET http://"+server$+"/chatout?NICKNAME="+nickname$+"&PW="+pw$+"&CC=&SC=&CHANNEL="+channel$+"&PROVIDER=CHATAT&KEY=258&LI=12&BL=2&"+id$+"&"+sid$+"PI=0&MODE=1048576"+http$ + Chr(13) + Chr(10)
If http$ = " HTTP/1.1"
get + "Host : "+server$+":"+Str(port)+Chr(13)+Chr(10)
EndIf
get + "Accept : */*" + Chr(13) + Chr(10)
; get + "Connection: Stay-Alive"+ Chr(13) + Chr(10)
get + Chr(13) + Chr(10)
ProcedureReturn get
EndProcedure
Procedure.s ChatSay(say$)
get.s = "GET http://"+server$+"/chatin?"+sid$+"&"+id$+"&OUT="+say$+" HTTP/1.0"+ Chr(13) + Chr(10)
get + "Accept : */*" + Chr(13) + Chr(10)
;get + "Connection: Stay-Alive"+ Chr(13) + Chr(10)
get + Chr(13) + Chr(10)
ProcedureReturn get
EndProcedure
Procedure findSid(html.s)
Repeat
k = k + 1
SID$ = StringField(html, k, "&")
Until FindString(SID$, "SID=",1)
k = 0
Repeat
k = k + 1
ID$ = StringField(html, k, "&")
Until FindString(ID$, "ID=",1)
k = 0
EndProcedure
command.s = URLget("/chatstart?PROVIDER=CHATAT&KEY=258&MODE=1048576&NICKNAME="+Nickname$+"&PW="+pw$+"&CHANNEL="+channel$+"&FRAME=startframe&OUT=ja")
ConnectionID = OpenNetworkConnection(server$, port)
If ConnectionID <> 0
*Buffer = AllocateMemory(bufferLength)
SendNetworkData(ConnectionID, @command, Len(command))
ok = 0
Repeat
res = NetworkClientEvent(ConnectionID)
Select res
Case 0
Case 2
ReceivedData.s = ""
ReceivedDataLength = 0
Repeat
Result = ReceiveNetworkData(ConnectionID,*Buffer, BufferLength)
ReceivedData + PeekS(*Buffer)
ReceivedDataLength + Result
Until Result < BufferLength
ok = 1
Case 3
EndSelect
Until ok = 1
MessageBox_(0, "Received " + Str(ReceivedDataLength) + " bytes" + Chr(13) + Chr(10) + Chr(13) + Chr(10) + ReceivedData, "pb", #MB_ICONINFORMATION)
findSid(ReceivedData)
MessageRequester("SID & ID",sid$+ Chr(13) + Chr(10) + id$)
SendNetworkData(ConnectionID, @ChatSay("Hello!"), Len(ChatSay("Hello!")))
Debug ChatSay("Hello!")
If ConnectionID <> 0
SendNetworkString(ConnectionID, ChatSay("hi"))
FreeMemory(*Buffer)
*Buffer = AllocateMemory(bufferLength)
ok = 0
Repeat
res = NetworkClientEvent(ConnectionID)
Select res
Case 0
Case 2
ReceivedData.s = ""
ReceivedDataLength = 0
Repeat
Result = ReceiveNetworkData(ConnectionID,@chatout(), BufferLength)
ReceivedData + PeekS(*Buffer)
ReceivedDataLength + Result
If FindString(ReceivedData, "999",1) And FindString(ReceivedData, "Fehler",1)
Debug "Fehler 999"
End
EndIf
Until Result < BufferLength
ok = 1
Case 3
EndSelect
Until ok = 1
MessageBox_(0, "Received " + Str(ReceivedDataLength) + " bytes" + Chr(13) + Chr(10) + Chr(13) + Chr(10) + ReceivedData, "ok :", #MB_ICONINFORMATION)
EndIf
EndIf[/size]