GenisysPro  for Minecraft PE/Windows 10 v1.1.x
Feature-rich server software for Minecraft PE and Windows 10 Edition
UDPServerSocket Class Reference

Public Member Functions

 __construct (\ThreadedLogger $logger, $port=19132, $interface="0.0.0.0")
 
 getSocket ()
 
 close ()
 
 readPacket (&$buffer, &$source, &$port)
 
 writePacket ($buffer, $dest, $port)
 
 setSendBuffer ($size)
 
 setRecvBuffer ($size)
 

Protected Attributes

 $logger
 
 $socket
 

Constructor & Destructor Documentation

◆ __construct()

__construct ( \ThreadedLogger  $logger,
  $port = 19132,
  $interface = "0.0.0.0" 
)
29  {
30  $this->socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
31  //socket_set_option($this->socket, SOL_SOCKET, SO_BROADCAST, 1); //Allow sending broadcast messages
32  if(@socket_bind($this->socket, $interface, $port) === true){
33  socket_set_option($this->socket, SOL_SOCKET, SO_REUSEADDR, 0);
34  $this->setSendBuffer(1024 * 1024 * 8)->setRecvBuffer(1024 * 1024 * 8);
35  }else{
36  $logger->critical("**** FAILED TO BIND TO " . $interface . ":" . $port . "!");
37  $logger->critical("Perhaps a server is already running on that port?");
38  exit(1);
39  }
40  socket_set_nonblock($this->socket);
41  }

Member Function Documentation

◆ close()

close ( )
47  {
48  socket_close($this->socket);
49  }

◆ getSocket()

getSocket ( )
43  {
44  return $this->socket;
45  }

◆ readPacket()

readPacket ( $buffer,
$source,
$port 
)
Parameters
string&$buffer
string&$source
int&$port
Returns
int
58  {
59  return socket_recvfrom($this->socket, $buffer, 65535, 0, $source, $port);
60  }

◆ setRecvBuffer()

setRecvBuffer (   $size)
Parameters
int$size
Returns
$this
89  {
90  @socket_set_option($this->socket, SOL_SOCKET, SO_RCVBUF, $size);
91 
92  return $this;
93  }

◆ setSendBuffer()

setSendBuffer (   $size)
Parameters
int$size
Returns
$this
78  {
79  @socket_set_option($this->socket, SOL_SOCKET, SO_SNDBUF, $size);
80 
81  return $this;
82  }

◆ writePacket()

writePacket (   $buffer,
  $dest,
  $port 
)
Parameters
string$buffer
string$dest
int$port
Returns
int
69  {
70  return socket_sendto($this->socket, $buffer, strlen($buffer), 0, $dest, $port);
71  }

Field Documentation

◆ $logger

$logger
protected

◆ $socket

$socket
protected

The documentation for this class was generated from the following file: