Hejsa. Jeg har en socket server, som ser sådan her ud:
socketsrv.php
- <?php
- $address = "127.0.0.1";
- $port = 806;
-
- /* Create a socket in the AF_INET family*/
- /* using SOCK_STREAM for TCP connection */
- $mysock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
-
- socket_bind($mysock, $address, $port);
-
- socket_listen($mysock, 5);
- listentoclient($mysock);
-
- function listentoclient($mysock) {
- // Accept the client to connect
- $client = socket_accept($mysock);
- // Read the input from the client – 1024 bytes
- $input = socket_read($client, 1024);
-
- // Welcome the user
- $output = "<font color='green'>Connected!</font>";
-
- // Display output back to client
- socket_write($client, $output);
- } // THE END
- ?>
Og min client, som ser sådan her ud:
socketusr.php
- <?php
- $host="127.0.0.1" ;
- $port=806;
- $timeout=1;
- $sk=fsockopen($host,$port,$errnum,$errstr,$timeout) ;
- if (!is_resource($sk)) {
- exit("connection fail: ".$errnum." ".$errstr) ;
- } else {
- fputs($sk, "") ;
- $dati="" ;
- while (!feof($sk)) {
- $dati.= fgets ($sk, 1024);
- }
- }
- fclose($sk) ;
- echo($dati) ;
- ?>
Okay okay.
Jeg kan starte min socket server op uden noget problem og derefter min client(ved at åbne filen i min browser). Og jeg kan få dem til at snakke sammen. Men efter 60 sekunder lukker socket serveren, er der nogen måde at have den kørende på, hele tiden? Og når jeg så har send en besked til serveren, så stopper den. Og jeg kan ikke sende en besked mere. Jeg har prøvet med nogle while() og for() loops. Men åbenbart kan jeg kun bruge ip'en engang(det siger den da som fejl), hvordan kan jeg så få den til at "listen" på den port hele tiden og hver gang der kommer noget ind fra clienten, skal serveren enten udføre det if statement for at se om den skal genstarte noget på min pc eller andet.(feks. "kill"). Eller bare skrive noget tilbage. Jeg har kigget på php.net, men jeg kunne ikke bruge det til noget, sikkert fordi jeg ikke har kigget det rigtige sted. Og google rundt omkring og lejet en del med det, så jeg håber i kan hjælpe!
Hilsen,
- Magnus.