26. marts 2005 - 19:54
Der er
40 kommentarer og 1 løsning
Sende kommandoer til en java server i php cli
Hej jeg er ny i php-cli verdnen og ville spørgere hvordan man fx, connecter til en server også hvis en bruger derinde siger hej, skal den såkaldte "bot" svare @auto: Det mig.
Det er til
www.towerchat.com jeg vil bygge en bot til ( det skal sige jeg har fået lov)
vi siger der er 2 brugere inde på towerchat, så siger den ene "bot" så siger den anden bruger @auto: bot, den som siger @auto: bot, skal være den som jeg har lavet.
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
26. marts 2005 - 20:00
#1
socket kommunikation ?
26. marts 2005 - 20:01
#2
Hvordan?
26. marts 2005 - 20:06
#4
Har prøvet mig frem, se her. <?php set_time_limit(0); $server_addr = "chattower.dk"; // et eks. $server_port = "80"; // et eks. $remotehost = "chattower.com"; // et eks. $localhost = "127.0.0.1"; $realname = "TheBot"; $nick = "3"; $socket = fsockopen($server_addr, $server_port, $errno, $errstr); $Header = "test"; fputs($socket, "Tjekker?"); if ($socket < 0) { echo "failed... $errno: $errstr"; return; } else { echo "Connected."; } socket_set_blocking($socket, false); while($socket) { $out = fgets($socket, 1024); $out = rtrim($out); print "$out"; if (strlen($out) > 1) { if (preg_match("test", $out, $matches)) { fputs($socket, "Det virker"); print "Denne besked kommer hvis en skrev test.\r\n"; } } usleep(2500); } ?>
26. marts 2005 - 20:06
#5
Men den vil ikke sige "det virker" hvis en skriver test.
26. marts 2005 - 20:07
#6
Husk det jeg prøver og sende til clienten er lavet i java, altså den chat (
www.towerchat.com )
26. marts 2005 - 20:17
#7
Java sockets er ligesom alle andre sockets.
26. marts 2005 - 20:18
#8
Men prøv og udskriv hvad du modtager
26. marts 2005 - 20:21
#9
får: Conneted.abhaml
26. marts 2005 - 20:28
#10
abhaml er det jeg får ud fra serveren
26. marts 2005 - 20:30
#11
Er der en protokol mellem client og server ?
26. marts 2005 - 20:33
#12
ved ikke? - Tror jeg da nok
26. marts 2005 - 20:33
#13
somsagt er jeg ny inden for det område..
26. marts 2005 - 23:25
#14
Du kan da ikke bare smutte når vi er igang med en samtale?
27. marts 2005 - 00:03
#15
Det hænder at jeg har andet at lave en hænge på E ... :-)
27. marts 2005 - 00:03
#16
Har du en beskrivelse af den protokol ?
27. marts 2005 - 01:21
#17
Undskyld, men ved ikke hvad en protokol af? - Ikke bliv sur
27. marts 2005 - 01:24
#18
af = er
27. marts 2005 - 12:09
#19
En protokol beskriver hvordan data skal sendes mellem vlient og server. Den kan f.eks. definere at det skal ske som: client->server : SEND bruger "tekst som skal sendes" server->client : MESSAGE "tekst som modtages"
27. marts 2005 - 13:46
#20
når man skal sende en besked ser det sådan her ud ID,tekst ID = brugerens id på chatten tekst = teksten som skal sendes det samme med modtagelse.
27. marts 2005 - 17:11
#21
Og du skal ikke skrive noget for at logge ind ?
27. marts 2005 - 17:33
#22
Nej, er jo logget ind på chatten i forevejen.
27. marts 2005 - 17:38
#23
jesperkm - plz lad være med at tage mine koder, lav dit eget!
27. marts 2005 - 17:46
#24
Øh Hvordan skal chatserveren vide at din nuværende chat session og dit PHP script er samme bruger ?
27. marts 2005 - 17:47
#25
Du har ret :D Hvordan fortæller man brugeren den skal logge ind?
27. marts 2005 - 18:48
#26
Der må være en protokol for hvad client skal sende til serveren for at logge ind.
27. marts 2005 - 19:14
#27
Ja, men hvordan fortæller man serveren den skal finde informationer fra nettop den bruger jeg er logget ind med? noget med USERNAME: mitusername, PASSOWORD: kodeordet fra chatten, men hvordan logger man ind?
27. marts 2005 - 20:19
#28
kan du hjælpe med det?
27. marts 2005 - 20:21
#29
Hvis du er sikker på at det er formatet så må det være: fputs($socket, "USERNAME: " . $mitusername); fputs($socket, "PASSWORD: " . $kodeordet);
27. marts 2005 - 20:23
#30
Det er vel det samme som det lykkedes os at bruge 18 poster på i et andet spørgsmål. Hvordan er dit INPUT/OUTPUT eller protokol som arne_v spørger om :) Det nemmeste var nok at spørge programmørerene af towerchat, hvis det er muligt.
27. marts 2005 - 21:08
#32
hej så virker den igen, og har nu lavet det som arne_v sagde, nu udskriver den: Connected.alfe min kode: <?php set_time_limit(0); $server_addr = "server"; // et eks. $server_port = "202"; // et eks. $remotehost = "server"; // et eks. $localhost = "127.0.0.1"; $realname = "TheBot"; $nick = "3"; $socket = fsockopen($server_addr, $server_port, $errno, $errstr); $Header = "test"; fputs($socket, "Tjekker?"); if ($socket < 0) { echo "failed... $errno: $errstr"; return; } else { echo "Connected."; } $mitusername = "Bot"; $kodeordet = "bot1234"; fputs($socket, "USERNAME: " . $mitusername); fputs($socket, "PASSWORD: " . $kodeordet); socket_set_blocking($socket, false); while($socket) { $out = fgets($socket, 1024); $out = rtrim($out); print "$out"; if (strlen($out) > 1) { if (preg_match("/test/", $out, $matches)) { fputs($socket, "Det virker"); print "Denne besked kommer hvis en skrev test.\r\n"; } } usleep(2500); } ?>
27. marts 2005 - 21:42
#33
Det er håbløst at gætte sig frem til hvad du skal skrive. Bed dem der driver den char serveren om en spec på protokollen.
27. marts 2005 - 22:47
#34
undskyld undskyld arne.. ikke vær' sur! men ikke blev sur men hvad er en protokol?
27. marts 2005 - 23:27
#35
Det beskrev jeg 12:09:07 Men dem der har protokollen ved også hvad det er Og jeg er ikke sur - vi kommer bare ikke videre uden noget dokumentation
28. marts 2005 - 00:48
#36
Har jeg da beskrevet, læs 13:46:17
28. marts 2005 - 10:24
#37
Hm - jeg mangler f.eks. en beskrivelse af hvad "abhaml" og "alfe" betyder ! Og der må være flere kommandoer og svar.
28. marts 2005 - 16:21
#38
1. Den giver ikke flere kommandoer. 2. alfe og abhaml er det man får ud fra serveren af. - Kan man ikke bare lave en echo eller sådan noget fx. en fwrite eller sådan noget som skriver nogle JAVA kommandoer til serveren, fx. C,pId,mood_3 eller sådan noget. for så vil den skifte humør.
28. marts 2005 - 19:35
#39
net-city, vi snakker ikke om chat kommandoerne, du bruger virtuelt.
Det der mangler af info, er de kommandoer SERVEREN bruger, dvs. den bagliggende kode.
Fordi at jeg skriver "hej" i mIRC (IRC client) , så ser jeg jo ikke den skriver
"PRIVMSG channel : hej" til serveren.
Den kommando du så skulle sende med PHP, var netop "PRIVMSG channel : hej" og ikke bare "hej" som du stadigvæk tror. Dette er umuligt uden at have en RFC til den pågælgende protokol.
Sådan en kunne du sikkert få hvis du gad spørge towerchat, og du har jo fået lov.
Her er 2 eksmpler på RFC'er
FTP:
http://www.w3.org/Protocols/rfc959/ IRC:
http://www.alleged.com/irc/rfc/
30. marts 2005 - 14:20
#40
Læs 13:46:17
21. juni 2005 - 20:29
#41
h
Vi tilbyder markedets bedste kurser inden for webudvikling