php socket程式設計入門

2021-09-07 05:47:18 字數 1845 閱讀 3543

服務端

<?php/**

* file name server.php

* 伺服器端**

* * @author guisu.huang

* @since 2012-04-11

* *///

確保在連線客戶端時不會超時

set_time_limit(0);

//設定ip和埠號

$address = "127.0.0.1";

$port = 2046; //

除錯的時候,可以多換埠來測試程式!/**

* 建立乙個socket

* af_inet=是ipv4 如果用ipv6,則引數為 af_inet6

* sock_stream為socket的tcp型別,如果是udp則使用sock_dgram

*/$sock = socket_create(af_inet, sock_stream, sol_tcp) or die("socket_create() 失敗的原因是:" . socket_strerror(socket_last_error()) . "/n");

//阻塞模式

socket_set_block($sock) or die("socket_set_block() 失敗的原因是:" . socket_strerror(socket_last_error()) . "/n");

//繫結到socket埠

$result = socket_bind($sock, $address, $port) or die("socket_bind() 失敗的原因是:" . socket_strerror(socket_last_error()) . "/n");

//開始監聽

$result = socket_listen($sock, 4) or die("socket_listen() 失敗的原因是:" . socket_strerror(socket_last_error()) . "/n");

echo "ok\nbinding the socket on $address:$port ... ";

echo "ok\nnow ready to accept connections.\nlistening on the socket ... \n";

do

while (true

);socket_close(

$sock);

客戶端

<?php/**

* file name:client.php

* 客戶端**

* * @author guisu.huang

* @since 2012-04-11 */

set_time_limit(0);

$host = "127.0.0.1";

$port = 2046;

$socket = socket_create(af_inet, sock_stream, sol_tcp)or die("could not create socket\n"); //

建立乙個socket

$connection = socket_connect($socket, $host, $port) or die("could not connet server\n"); //

連線socket_write($socket, "長連線。。。。。。。。。。。。。。。") or die("write failed\n"); //

資料傳送 向伺服器傳送訊息

while ($buff = socket_read($socket, 1024,php_normal_read))

socket_close(

$socket);

PHP SOCKET程式設計!

server.php php 確保在連線客戶端時不會超時 set time limit 0 設定ip和埠號 address 伺服器自己的ip port 埠號 建立乙個socket if sock socket create af inet sock stream sol tcp 0 繫結到socke...

php socket程式設計通訊

我們程式設計就是按這個順序的,請看下面的圖 建立乙個連線 socket socket create af inet,sock stream,sol tcp or die cannot create socket n 繫結socket到埠 result socket bind socket,host,...

PHP Socket 程式設計詳解

最近在做的專案有一項需要耗時任務在後台執行的功能,雖然php並不是非常適合做常駐後台的守護程序,但是由於專案主要 都是基於php實現,如 果執行在後台的守護程序改換別的語言會非常不方便。所以不可避免會涉及到web端和daemon部分的通訊,socket是乙個不錯的方式。socket的英文原義是 孔 ...