Sockets maar eens in bepaalde tijd?
Ik ben een IRC botje aan het maken, dit doe ik om ervaring te krijgen met sockets.
Nu vind ik het raar, want als ik (in comandline) me bot open connect hij de eerste keer meteen naar de irc server. Als dit gedaan is quit hij dezelfde seconde nog (dat probleem is nu niet belangerijk imo).
Maar dan moet ik nu soms wel tot een minuut wachten tot ik weer een connectie kan openen.
Is dit normaal? Of is er echt een fout?
Alvast bedankt :)
Dan ben je er al op denkt ie.
En voor je andere probleem :
while( 1 )
{
// botcode
}
Zorgt voor een oneindige loop die je natuurlijk ieder moment met break kan beëindingen :)
Het while gedeelte werkt ook perfect!
Heel er bedankt! ^_^
(btw.. Kurosaki Ichigo! :P)
Tijd voor een nieuwe ja :+
Ontopic \o/
Zal door de while(1) komen zeker?
EDIT:
Ik zal even me code posten, zal wel handig zijn:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
error_reporting(E_ALL);
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, "irc.tweakers.net", 6667);
socket_write($socket,"USER ZonaX_Bot POEP.com poepagain :boty\r\n");
socket_write($socket,"NICK Chidori\r\n");
socket_write($socket,"JOIN :#test\r\n");
while($data = @socket_read($socket, 65000, PHP_NORMAL_READ)){
echo $data;
$fopen = fopen("bot/log.txt", "a");
fwrite($fopen, $data);
fclose($fopen);
}
while(1){
}
socket_shutdown($socket, 2);
socket_close($socket);
?>
error_reporting(E_ALL);
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, "irc.tweakers.net", 6667);
socket_write($socket,"USER ZonaX_Bot POEP.com poepagain :boty\r\n");
socket_write($socket,"NICK Chidori\r\n");
socket_write($socket,"JOIN :#test\r\n");
while($data = @socket_read($socket, 65000, PHP_NORMAL_READ)){
echo $data;
$fopen = fopen("bot/log.txt", "a");
fwrite($fopen, $data);
fclose($fopen);
}
while(1){
}
socket_shutdown($socket, 2);
socket_close($socket);
?>
Gewijzigd op 01/01/1970 01:00:00 door Jim
Beat it :+
Als ie in #travian komt ban ik hem :X
Die while staat op de verkeerde plaats trouwens ;)
Maar zoals jij doet kan het ook, zorg dan wel dat als data leeg is dat je doorgaat.
Dus:
if( empy( $data ) )
continue;
Hij werkt wel met fsockopen ipv socket_create..
Edit: Ik heb zelf een usleep(100); in mn while geplaatst, want constant loopen is overbodig, hierdoor kost hij geen 100% van je cpu meer :)
Gewijzigd op 01/01/1970 01:00:00 door DaeDaluz
En mitch... Wie ben jij dan uit #travian? >_<
((@RonaldMade|Delta) sh4d3h zou het kunnen zijn :P)
Maarja genoeg gekloot... Ik kan weer verder dankzij jullie :)
Hardstikke bedankt!
Vanavond heb ik wel weer tijd >:)