Ik probeer een connectie te krijgen met psyBNC via de socket maar dit wil niet echt vlotten. Dit is de code die ik gebruik:
Ik heb de overige zooi (sync e.d.) al gecomment dus daar ligt het niet aan. Als ik dit via telnet doet gaat het perfect (ook vanaf de machine waar vanaf ik het draai). Doe ik het via het script, krijg ik de volgende output:
-> is voor uitgaande socket info, <- ingaand. Via telnet krijg ik dan de message of the day etc etc te zien, daar werkt het. In php daarintegen gebeurd er helemaal niks. Ik krijg een timeout (de bouncer disiconnect mij omdat ik idle ben) en dat is het... ik ben al een half uur flink aan het googlen geweest , maar veel nuttige results zijn er niet.
Volgens RFC1459 (IRC Protcol) moet ik eerst PASS sturen, en daarna USER en NICK.
Het relevante stukje uit de RFC:
Dit volg ik ook, dus dat zou het ook niet moeten zijn (het werkt ook gewoon in telnet).
Iemand hier toevallig ervaring mee? Want ik kom er eventjes niet meer uit
Alvast bedankt!
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| $this->con['socket'] = fsockopen($host[0], $host[1]); if (!$this->con['socket']) print(date("[d/m @ H:i]") . " -- ERROR: Could not connect to: " . $host[0] . " on port " . $host[1] . "\n\r"); else { $this->Sync('users'); $this->Sync('prefs'); print date("[d/m @ H:i]") . " -> PASS pass\n"; fputs($this->con['socket'], "PASS pass\n\r"); print date("[d/m @ H:i]") . " -> NICK nick-die-niet-in-gebruik-is\n"; fputs($this->con['socket'], "NICK nick-die-niet-in-gebruik-is\n\r"); print date("[d/m @ H:i]") . " -> USER services mijnip bncip :hoi\n"; fputs($this->con['socket'], "USER services mijnip bncip :hoi\n\r"); |
Ik heb de overige zooi (sync e.d.) al gecomment dus daar ligt het niet aan. Als ik dit via telnet doet gaat het perfect (ook vanaf de machine waar vanaf ik het draai). Doe ik het via het script, krijg ik de volgende output:
code:
1
2
3
4
| [30/05 @ 14:29] <- :Welcome!psyBNC@lam3rz.de NOTICE * :psyBNC2.3.2-5 [30/05 @ 14:29] -> PASS pass [30/05 @ 14:29] -> NICK nickname [30/05 @ 14:29] -> USER username mijnip bncip :blabla |
-> is voor uitgaande socket info, <- ingaand. Via telnet krijg ik dan de message of the day etc etc te zien, daar werkt het. In php daarintegen gebeurd er helemaal niks. Ik krijg een timeout (de bouncer disiconnect mij omdat ik idle ben) en dat is het... ik ben al een half uur flink aan het googlen geweest , maar veel nuttige results zijn er niet.
Volgens RFC1459 (IRC Protcol) moet ik eerst PASS sturen, en daarna USER en NICK.
Het relevante stukje uit de RFC:
code:
1
2
3
4
5
6
7
| The PASS command is used to set a 'connection password'. The password can and must be set before any attempt to register the connection is made. Currently this requires that clients send a PASS command before sending the NICK/USER combination and servers *must* send a PASS command before any SERVER command. The password supplied must match the one contained in the C/N lines (for servers) or I lines (for clients). |
Dit volg ik ook, dus dat zou het ook niet moeten zijn (het werkt ook gewoon in telnet).
Iemand hier toevallig ervaring mee? Want ik kom er eventjes niet meer uit
Alvast bedankt!
[ Voor 13% gewijzigd door m33p op 30-05-2005 11:51 ]