-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSocketServer.php
More file actions
48 lines (32 loc) · 1.03 KB
/
SocketServer.php
File metadata and controls
48 lines (32 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
class SocketServer {
}
if (!extension_loaded('sockets')) {
die('The sockets extension is not loaded.');
}
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't create socket: [$errorcode] $errormsg");
}
if (socket_bind($socket, '127.0.0.1',8002) === false) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't bind socket: [$errorcode] $errormsg");
}
if (socket_listen($socket) === false) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't bind listen: [$errorcode] $errormsg");
}
socket_set_nonblock($socket);
while (true) {
if(($newc = socket_accept($socket)) !== false) {
echo "Client $newc has connected\n";
socket_write($newc,"Client $newc has connected\n");
$clients[] = $newc;
}
}
socket_shutdown($socket);
socket_close($socket);