
2014-06-30 |&∏''★nbsp; 發布者:梁國(guó)芳&nb"↕₽☆sp; | σ>; 查看(kàn):3320次
php php socket 使用$α(yòng)。。
先弄個(gè)簡單例子(zǐ)
服務端代碼server.php:
error_reporting(E_ALL);
set_time_limit(0);
//ob_implicit_flush();
$address = '127.0.0.1';
$port = 10005;
//創建端口
if( ($sock = socket_create(AF_IN§<<ET, SOCK_STREAM, SOL_TCP)) === falγ✔↓se) {
echo &quo←₽t;socket_create() failed :∑♠reason:" . socket_st≠""rerror(socket_last_error()) . "≤φ\n";
}
//綁定
if (socket_bind($sock, $address, $ πport) === false) {
echo "socket_bπ€ind() failed :reason:&↕↓→quot; . socket_strerror(sσ₽ocket_last_error($so≤©ck)) . "\n";© λ
}
//監聽(tīng)
if (socket_listen($sock, 5) ↑♣§=== false) {
echo "socke₽¶t_bind() failed :reason:" . so§↑πcket_strerror(socket_last_er≥♥"ror($sock)) . "'♦×ε\n";
}
do {
//得(de)到(dào)一(yī&¶€€)個(gè)鏈接
i™•↔αf (($msgsock = socket_accept($sock)) == ↕= false) {
&nbs¶↑p; echo "socket_accept™δ≥±y() failed :reason:".socket£♣®_strerror(socket_last_errorε×($sock)) . "\n";
&₹ε₩nbsp; break;
}
//welco☆γε₩me 發送到(dào)客戶端
$msg = & • quot;server send:welcome
";
socket_write($ms¶ε gsock, $msg, strlen($msg));
echo 'rΩ≠ ead client message\n';
$bufε✔& = socket_read($msgsock, 8192);
$talkback≈★γ = "received message:$buf\n";γπ
echo $tal∞±kback;
if (false =♦←↑∑== socket_write($msgsock, $talkback,≠' ∞ strlen($talkback))) {
&nbsπ€★p; echo "soc§§ket_write() failed reason±π☆:" . socket_strerror(socket_las&γ♠t_error($sock)) ."\n";
} else {φε
♠×¶ echo 'send success';
}
sockπ'et_close($msgsock);
} while(true);
//關閉socket
socket_close($sock);
?>
客戶端代碼 client.php:
//error_reporting(E_ALL);
echo "
/* ==========¥₩=以下(xià)為(wèi)要(yào)點===₩₩"÷========== **/
1.首先要(yào)在php.ini 中開(kāi)啓 php_so™φ>cket.dll2.server.php 需要(yà ↑☆σo)在 cli模↑←α式下(xià)運行(xíng) (win的(de)&♠γ<₽nbsp; cmd 窗(chuāng)口下(xià)  ✔β; 《需要(yào)配置環境變量才可¥Ω≥★(kě)以 使用(yòng) php &nb'×sp; "D:\Program Fil€×es\PHPnow\htdocs\server.php"₽∏• 》) 當有(yǒu)用(yòng)戶™×ε 在 在浏覽器(qì)運行(xíng)δ®₽• client.php時(shí)&π¶÷nbsp; cmd下(xià)™ 的(de) server.php 會(h¶÷uì)輸出相(xiàng)應的(de)信息。
環境變量設置 參見(jiàn) show-372.html
3.在php .ini 中&n&✔bsp; extension_dir&n↕∑→bsp; ♠• 改成 "ext" &n<bsp; 《win下(xià)&nb sp; php.ini 放(>δfàng)在 c:\windows 下(xi$↕γà)。<如(rú)果windows下(xià)←₽✘€沒有(yǒu) php.ini 需要(yào)複制(zhì)一≠•β÷(yī)個(gè)過去(qù)。>》
4.如(rú)果出現(xiàn)&nbs¶∞p;Failed loading ..\..\ZendOptimizer\♦ ZendExtensionManager.dll
php.ini底部加了(le)段加載他(tā)的(de)DLL代碼φ ≤δ,去(qù)掉就(jiù)行(xíng)☆∞了(le)
在PHP.ini中搜索zend,然後都(dōu)注 ₹↕釋掉
[Zend]
#;zend_extension_ts = &quo≈✘t;\xampp\php\zendOptimizer≈\lib\ZendExtensionManager.dΩ₩γll"
#;zend_extension_manager.optimizer_tδ★s = "\xampp\php¥β•×\zendOptimizer\lib\Optimizer&q•&∏uot;
。。。
