All pastes #903296 Raw Edit

Mine

public text v1 · immutable
·published 2008-02-14 04:04 UTC
rendered paste body
PHP Warning:  socket_sendto(): unable to write to socket [0]: A request to send
or receive data was disallowed because the socket is not connected and (when sen
ding on a datagram socket using a sendto call) no address was supplied.
 in C:\Program Files\php\bot.php on line 17
<?php
set_time_limit(0);
class mainIrcBot{


	public $address = '69.42.221.249';
	public $port = 6667;
	public $nick = 'darkBots-';
	public $name = 'darksbot';
	public $chan = "#devcol";
	public $botSockets = array();
	function dataSend($botNumber, $dataSend) {
		if ($botNumber == "all") {
			foreach($this->botSockets as $socketId => $source)
			{
				
				socket_write($this->botSockets[$socketId], $dataSend."\n\r");
				echo "---> $dataSend<br/>";

			}
		} else {
			
			
				socket_write($this->botSockets[$botNumber], $dataSend."\n\r");
			echo "---> $dataSend<br/>";
		}
	}

	function botSocketCreate($botCount) {
		for ($i=0; $i<$botCount; $i++) {
			$botInfo = array($i => array("nick" => "DarkBots-".$i, "name" => "poopymanname", "chan" => "#devcol"));

			$this->botSockets[$i] = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
		}

	}

	function sendInfo() {
		foreach($this->botSockets as $id => $socket)
		{
			
			socket_connect($this->botSockets[$id],$this->address, $this->port);

			//  Add error checking here to see if connection was successful!
			$this->dataSend("all", "NICK ".$this->nick.$id);
			$this->dataSend("all", "USER ".$this->name.$id.' '.$this->name.$id.' '.$this->address.rand(1,100).' :'.$this->name.rand(1,100));
		}
	}

	function receiveData() {
		while (true)
		{
			//  Duplicate the socket array to avoid losing the array of sockets.
			$read = $this->botSockets;

			//  A polling delay is REQUIRED
			$select = socket_select($read, $write=null, $exp=null, 0, 50);
			if (false === $select) {
				echo "socket_select() failed, reason: " .
				socket_strerror(socket_last_error()) . "\n";
			}
			else if ($select > 0) {
				foreach($read as $socket => $k)
				{
					$data = socket_read($k,2048);
					$ex = explode(" ", $data);
					echo $ex[0];
					if ($ex[0] == "PING") {
						$pong = $ex[1];
						echo $pong;
						$this->dataSend("all", "PONG $pong");

						$this->dataSend("all", "JOIN $chan");


					}

					echo $data;
				}
			}
		}
	}
}
$class = new mainIrcBot();
$class->botSocketCreate(10);
$class->sendInfo();

$class->receiveData();
?>