PHP Socket 編程
更新時(shí)間:2010年04月09日 17:47:12 作者:
讓我們以一個(gè)簡(jiǎn)單的例子開始---一個(gè)接收輸入字符串,處理并返回這個(gè)字符串到客戶端的TCP服務(wù).
下面是相應(yīng)的代碼:
PHP 代碼:
<?
// 設(shè)置一些基本的變量
$host = "192.168.1.99";
$port = 1234;
// 設(shè)置超時(shí)時(shí)間
set_time_limit(0);
// 創(chuàng)建一個(gè)Socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create
socket\n");
//綁定Socket到端口
$result = socket_bind($socket, $host, $port) or die("Could not bind to
socket\n");
// 開始監(jiān)聽鏈接
$result = socket_listen($socket, 3) or die("Could not set up socket
listener\n");
// accept incoming connections
// 另一個(gè)Socket來(lái)處理通信
$spawn = socket_accept($socket) or die("Could not accept incoming
connection\n");
// 獲得客戶端的輸入
$input = socket_read($spawn, 1024) or die("Could not read input\n");
// 清空輸入字符串
$input = trim($input);
//處理客戶端輸入并返回結(jié)果
$output = strrev($input) . "\n";
socket_write($spawn, $output, strlen ($output)) or die("Could not write
output\n");
// 關(guān)閉sockets
socket_close($spawn);
socket_close($socket);
?>
PHP 代碼:
復(fù)制代碼 代碼如下:
<?
// 設(shè)置一些基本的變量
$host = "192.168.1.99";
$port = 1234;
// 設(shè)置超時(shí)時(shí)間
set_time_limit(0);
// 創(chuàng)建一個(gè)Socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create
socket\n");
//綁定Socket到端口
$result = socket_bind($socket, $host, $port) or die("Could not bind to
socket\n");
// 開始監(jiān)聽鏈接
$result = socket_listen($socket, 3) or die("Could not set up socket
listener\n");
// accept incoming connections
// 另一個(gè)Socket來(lái)處理通信
$spawn = socket_accept($socket) or die("Could not accept incoming
connection\n");
// 獲得客戶端的輸入
$input = socket_read($spawn, 1024) or die("Could not read input\n");
// 清空輸入字符串
$input = trim($input);
//處理客戶端輸入并返回結(jié)果
$output = strrev($input) . "\n";
socket_write($spawn, $output, strlen ($output)) or die("Could not write
output\n");
// 關(guān)閉sockets
socket_close($spawn);
socket_close($socket);
?>
相關(guān)文章
WordPress中用于獲取文章信息以及分類鏈接的函數(shù)用法
這篇文章主要介紹了WordPress中用于獲取文章信息以及分類鏈接的函數(shù)用法,分別是get_post()和get_category_link()的使用,需要的朋友可以參考下2015-12-12
php實(shí)現(xiàn)word轉(zhuǎn)html的方法
這篇文章主要介紹了php實(shí)現(xiàn)word轉(zhuǎn)html的方法,涉及PHP調(diào)用com組件操作word文檔的相關(guān)技巧,需要的朋友可以參考下
2016-01-01
apache和php之間協(xié)同工作的配置經(jīng)驗(yàn)分享
閑暇之時(shí)也會(huì)對(duì)PHP知識(shí)做一些研究與大家共享,首先工欲善其事,必先利其器,可能比喻不是很恰當(dāng),php也需要一系列的環(huán)境配置,以下是我配置php的一些手稿,經(jīng)測(cè)試已成功運(yùn)行了
2013-04-04
php實(shí)現(xiàn)簡(jiǎn)單文件下載的方法
這篇文章主要介紹了php實(shí)現(xiàn)簡(jiǎn)單文件下載的方法,以實(shí)例形式簡(jiǎn)單分析了文件下載的原理與實(shí)現(xiàn)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
2015-01-01
通過PHP current函數(shù)獲取未知字符鍵名數(shù)組第一個(gè)元素的值
在開發(fā)中經(jīng)常遇到這樣問題,獲取數(shù)組第一個(gè)元素的值,如果是數(shù)字索引那還好,直接$array[0],如果鍵名是字符串,你又未知這個(gè)字符串呢?用current()函數(shù)就可以做到
2013-06-06
用PHP即時(shí)捕捉PHP中的錯(cuò)誤并發(fā)送email通知的實(shí)現(xiàn)代碼
這段代碼,其用意就是當(dāng)我們寫的php程式出錯(cuò)的時(shí)候把錯(cuò)誤內(nèi)容捕捉出來(lái)然后發(fā)到我們的email內(nèi),方便我們排錯(cuò)
2013-01-01
PHP命名空間namespace定義及導(dǎo)入use用法詳解
這篇文章主要介紹了PHP命名空間namespace定義及導(dǎo)入use用法,結(jié)合實(shí)例形式詳細(xì)分析了php中命名空間namespace的功能、定義及導(dǎo)入use相關(guān)使用方法與操作技巧,需要的朋友可以參考下
2018-03-03 
