‘壹’ phpSocket缂栫▼杩囩▼
PHP锛孲ocket缂栫▼杩囩▼寰埚氢汉杩树笉鐭ラ亾锛岀幇鍦ㄨ╂垜浠涓璧锋潵鐪嬬湅钖э紒
PHP Socket缂栫▼杩囩▼
銆銆Socket鐢ㄤ簬杩涚▼闂撮氢俊锛岃繘绋嬮棿阃氢俊阃氩父锘轰簬瀹㈡埛绔钬旀湇锷$妯″瀷銆傛ゆ椂锛屽㈡埛绔钬旀湇锷$鏄鍙浠ュ郊姝や氦浜掔殑搴旂敤绋嫔簭銆傚㈡埛绔鍜屾湇锷$涔嬮棿镄勪氦浜挜渶瑕佽繛鎺ャ係ocket缂栫▼璐熻矗镄勫氨鏄涓哄簲鐢ㄧ▼搴忎箣闂村缓绔嫔彲杩涜屼氦浜掔殑杩炴帴銆备笅闱涓哄ぇ瀹朵粙缁崭竴涓婸HP Socket缂栫▼杩囩▼!
銆銆浣跨敤浠g爜
銆銆鐩镄'锛氩紑鍙戜竴涓瀹㈡埛绔鐢ㄤ簬鍙戦乻tring娑堟伅鍒版湇锷$锛屾湇锷$灏嗙浉钖岀殑淇℃伅鍙嶈浆钖庤繑锲炵粰瀹㈡埛绔銆
銆銆PHP链嶅姟鍣
銆銆绗1姝ワ细璁剧疆鍙橀噺锛屽傗滀富链衡濆拰钬灭鍙b
銆銆$host = "127.0.0.1";$port = 5353;// No Timeout set_time_limit(0);
銆銆绔鍙e彿鍙浠ユ槸1024 -65535涔嬮棿镄勪换浣曟f暣鏁般
銆銆绗2姝ワ细鍒涘缓socket
銆銆$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socketn");
銆銆绗3姝ワ细缁戝畾socket鍒扮鍙e拰涓绘満
銆銆鍒涘缓镄剆ocket璧勬簮缁戝畾鍒癐P鍦板潃鍜岀鍙e彿銆
銆銆$result = socket_bind($socket, $host, $port) or die("Could not bind to socketn");
銆銆绗4姝ワ细钖锷╯ocket鐩戝惉
銆銆鍦ㄧ粦瀹氩埌IP鍜岀鍙e悗锛屾湇锷$寮濮嬬瓑寰呭㈡埛绔镄勮繛鎺ャ傚湪娌℃湁杩炴帴涔嫔墠瀹冨氨涓鐩寸瓑涓嫔幓銆
銆銆$result = socket_listen($socket, 3) or die("Could not set up socket listenern");
銆銆绗5姝ワ细鎺ュ弹杩炴帴
銆銆杩欎釜鍑芥暟浼氭帴鍙楁墍寤虹殑socket浼犲叆镄勮繛鎺ヨ锋眰銆傚湪鎺ュ弹𨱒ヨ嚜瀹㈡埛绔痵ocket镄勮繛鎺ュ悗锛岃ュ嚱鏁拌繑锲炲彟涓涓狲ocket璧勬簮锛屽疄闄呬笂灏辨槸璐熻矗涓庣浉搴旂殑瀹㈡埛绔痵ocket阃氢俊銆傝繖閲岀殑钬$spawn钬濆氨鏄璐熻矗涓庡㈡埛绔痵ocket阃氢俊镄剆ocket璧勬簮銆
銆銆$spawn = socket_accept($socket) or die("Could not accept incoming connectionn");
銆銆鍒扮幇鍦ㄤ负姝锛屾垜浠宸茬粡鍑嗗囧ソ浜嗘湇锷$痵ocket 锛屼絾瀹为檯涓婅繖涓鑴氭湰骞舵病链夊仛浠讳綍浜嬫儏銆傛墍浠ヤ负浜嗙户缁瀹屾垚涓婅堪鐩镙囷纴鎴戜滑灏呜诲彇瀹㈡埛绔痵ocket娑堟伅锛岀劧钖庡皢鎺ユ敹鍒扮殑娑堟伅鍙嶈浆钖庡彂锲炵粰瀹㈡埛绔痵ocket銆
銆銆绗6姝ワ细浠庡㈡埛绔痵ocket璇诲彇娑堟伅
銆銆$input = socket_read($spawn, 1024) or die("Could not read inputn");
銆銆绗7姝ワ细鍙嶈浆娑堟伅
銆銆$output = strrev($input) . "n";
銆銆绗8姝ワ细鍙戦佹秷鎭缁椤㈡埛绔痵ocket
銆銆socket_write($spawn, $output, strlen ($output)) or die("Could not write outputn");
銆銆鍏抽棴socket
銆銆socket_close($spawn);socket_close($socket);
銆銆杩椤氨瀹屾垚浜嗘湇锷$銆傜幇鍦锛屾垜浠瀛︿範濡备綍鍒涘缓PHP瀹㈡埛绔銆
銆銆PHP瀹㈡埛绔
銆銆鍓崭袱涓姝ラや笌链嶅姟绔鐩稿悓銆
銆銆绗1姝ワ细璁剧疆鍙橀噺锛屽傗滀富链衡濆拰钬灭鍙b
銆銆$host = "127.0.0.1";$port = 5353;// No Timeout set_time_limit(0);
銆銆娉锛氲繖閲岀殑绔鍙e拰涓绘満搴旇ュ拰链嶅姟绔涓镄勫畾涔夋槸鐩稿悓镄勚
銆銆绗2姝ワ细鍒涘缓socket
銆銆$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socketn");
銆銆绗3姝ワ细杩炴帴鍒版湇锷$
銆銆$result = socket_connect($socket, $host, $port) or die("Could not connect toservern");
銆銆姝ゆ椂鍜屾湇锷$涓嶅悓锛屽㈡埛绔痵ocket涓岖粦瀹氱鍙e拰涓绘満銆傜浉鍙嶏纴瀹冭繛鎺ュ埌链嶅姟绔痵ocket锛岀瓑寰呮帴鍙楁潵镊瀹㈡埛绔痵ocket镄勮繛鎺ャ傝繖涓姝ュ缓绔嬩简瀹㈡埛绔痵ocket鍒版湇锷$痵ocket镄勮繛鎺ャ
銆銆绗4姝ワ细鍐椤叆链嶅姟绔痵ocket
銆銆socket_write($socket, $message, strlen($message)) or die("Could not send data to servern");
銆銆鍦ㄦゆラや腑锛屽㈡埛绔痵ocket镄勬暟鎹琚鍙戦佸埌链嶅姟绔痵ocket銆
銆銆绗5姝ワ细阒呰绘潵镊链嶅姟绔镄勫搷搴
銆銆$result = socket_read ($socket, 1024) or die("Could not read server responsen");echo "Reply From Server :".$result;
銆銆绗6姝ワ细鍏抽棴socket
銆銆socket_close($socket);
銆銆瀹屾暣镄勪唬镰
銆銆链嶅姟绔(server.php)
銆銆// set some variables$host = "127.0.0.1";$port = 25003;// don't timeout!set_time_limit(0);// create socket$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socketn");// bind socket to port$result = socket_bind($socket, $host, $port) or die("Could not bind to socketn");// start listening for connections$result = socket_listen($socket, 3) or die("Could not set up socket listenern");// accept incoming connections// spawn another socket to handle communication$spawn = socket_accept($socket) or die("Could not accept incoming connectionn");// read client input$input = socket_read($spawn, 1024) or die("Could not read inputn");// clean up input string$input = trim($input);echo "Client Message : ".$input;// reverse client input and send back$output = strrev($input) . "n";socket_write($spawn, $output, strlen ($output)) or die("Could not write outputn");// close socketssocket_close($spawn);socket_close($socket);
銆銆瀹㈡埛绔(client.php)
銆銆$host = "127.0.0.1";$port = 25003;$message = "Hello Server";echo "Message To server :".$message;// create socket$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socketn");// connect to server$result = socket_connect($socket, $host, $port) or die("Could not connect to servern"); // send string to serversocket_write($socket, $message, strlen($message)) or die("Could not send data to servern");// get server response$result = socket_read ($socket, 1024) or die("Could not read server responsen");echo "Reply From Server :".$result;// close socketsocket_close($socket);
銆銆寤虹珛涓婅堪鏂囦欢(server.php鍜宑lient.php)钖庯纴镓ц屽备笅镎崭綔锛
銆銆澶嶅埗www鐩褰曚腑镄勮繖浜涙枃浠(锅囱网AMP)锛屽畨缃浜嶤:wamp銆
銆銆镓揿紑Web娴忚埚櫒锛屽湪鍦板潃镙忎腑阌鍏localhost 銆
銆銆鍏堟祻瑙坰erver.php铹跺悗client.php銆
‘贰’ php鐜澧冩惌寤
PHP鐜澧冩惌寤烘ラ
涓銆佺‘瀹氭搷浣灭郴缁熷拰杞浠堕渶姹
鍦ㄦ惌寤篜HP鐜澧冧箣鍓嶏纴闇瑕佹槑纭镓浣跨敤镄勬搷浣灭郴缁熷强镓闇镄勮蒋浠跺垪琛锛屽寘𨰾琍HP瑙i喷鍣ㄣ佹暟鎹搴撶$悊绯荤粺鍜屾湇锷″櫒杞浠躲傜‘淇濈郴缁熺幆澧幂﹀悎PHP镄勮繍琛岃佹眰銆
浜屻佸畨瑁匬HP瑙i喷鍣
镙规嵁镓阃夋搷浣灭郴缁燂纴涓嬭浇骞跺畨瑁匬HP瑙i喷鍣ㄣ傚逛簬Windows鐢ㄦ埛锛屽彲浠ヤ粠PHP瀹樼绣涓嬭浇阃傜敤浜嶹indows镄凯HP瀹夎呭寘杩涜屽畨瑁咃绂瀵逛簬Linux鍜孧ac鐢ㄦ埛锛屽彲浠ラ氲繃鍖呯$悊鍣ㄨ繘琛屽畨瑁呫傜‘淇漃HP瑙i喷鍣ㄥ畨瑁呮垚锷熷苟鑳藉熸g‘杩愯屻
涓夈佸畨瑁呮暟鎹搴撶$悊绯荤粺
镙规嵁闇瑕侀夋嫨瀹夎呮暟鎹搴撶$悊绯荤粺锛屽侻ySQL銆傚悓镙凤纴镙规嵁镓阃夋搷浣灭郴缁熶笅杞界浉搴旂殑瀹夎呭寘杩涜屽畨瑁呫傞厤缃鏁版嵁搴掳纴璁剧疆鐢ㄦ埛钖嶃佸瘑镰佺瓑蹇呰佷俊鎭銆
锲涖佸畨瑁呮湇锷″櫒杞浠
瀹夎匒pache鎴栧叾浠栨湇锷″櫒杞浠讹纴浠ヤ究鑳藉熻繍琛孭HP鑴氭湰銆傚畨瑁呰繃绋嬩笌鏁版嵁搴撶$悊绯荤粺绫讳技锛屼笅杞藉瑰簲镎崭綔绯荤粺镄勫畨瑁呭寘杩涜屽畨瑁咃纴骞堕厤缃鐩稿叧璁剧疆銆
浜斻侀厤缃鐜澧冨彉閲
瀵逛簬Windows绯荤粺锛屽彲鑳介渶瑕侀厤缃鐜澧冨彉閲忎互纭淇濆湪锻戒护琛屼腑鍙浠ヨ繍琛孭HP鐩稿叧锻戒护銆傚皢PHP瑙i喷鍣ㄧ殑璺寰勬坊锷犲埌绯荤粺鐜澧冨彉閲忎腑銆
鍏銆侀獙璇佸畨瑁
瀹屾垚浠ヤ笂姝ラゅ悗锛岄獙璇丳HP鐜澧冩槸钖︽惌寤烘垚锷熴傚彲浠ュ湪Apache链嶅姟鍣ㄤ笂鍒涘缓涓涓绠鍗旷殑PHP鏂囦欢锛屽寘钖玃HP浠g爜濡“”锛岀劧钖庨氲繃娴忚埚櫒璁块梾璇ユ枃浠讹纴镆ョ湅PHP淇℃伅椤甸溃浠ョ‘璁ょ幆澧冮厤缃姝g‘銆
璇︾粏瑙i喷锛
涓銆佺‘瀹氭搷浣灭郴缁熷拰杞浠堕渶姹锛氩湪鎼寤轰换浣曞紑鍙戠幆澧冧箣鍓嶏纴閮介渶瑕佹槑纭浣犵殑镎崭綔绯荤粺绫诲瀷鍜屾墍闇镄勮蒋浠跺垪琛ㄣ傝繖镙蜂綘鍙浠ョ‘淇濆畨瑁呮g‘镄勮蒋浠跺拰鐗堟湰锛岄伩鍏嶅洜绯荤粺涓嶅吋瀹硅屽艰嚧镄勯梾棰樸
浜屻佸畨瑁匬HP瑙i喷鍣锛歅HP瑙i喷鍣ㄦ槸杩愯孭HP浠g爜镄勬牳蹇幂粍浠躲傛牴鎹浣犳墍浣跨敤镄勬搷浣灭郴缁燂纴阃夋嫨钖堥傜殑PHP鐗堟湰杩涜屽畨瑁呫傚畨瑁呰繃绋嬮氩父鍖呮嫭涓嬭浇銆佽В铡嫔拰閰岖疆鐜澧冨彉閲忕瓑姝ラゃ
涓夈佸畨瑁呮暟鎹搴撶$悊绯荤粺锛歅HP甯稿父涓庢暟鎹搴扑竴璧蜂娇鐢锛屽侻ySQL銆傚畨瑁呮暟鎹搴撶$悊绯荤粺鏄涓轰简瀛桦偍鍜岀$悊鏁版嵁銆傛牴鎹闇姹傞夋嫨钖堥傜殑鏁版嵁搴撶増链杩涜屽畨瑁呭拰閰岖疆銆
锲涖佸畨瑁呮湇锷″櫒杞浠锛氢负浜嗛氲繃缃戦〉璁块梾PHP鑴氭湰锛岄渶瑕佸畨瑁呮湇锷″櫒杞浠跺侫pache銆傚畨瑁呮湇锷″櫒杞浠跺悗锛岄渶瑕佽繘琛岀浉鍏抽厤缃浠ヤ究涓嶱HP瑙i喷鍣ㄩ泦鎴愩
浜斻侀厤缃鐜澧冨彉閲锛氩湪Windows绯荤粺涓锛岄厤缃鐜澧冨彉閲忓彲浠ョ‘淇濆湪浠绘剰浣岖疆閮借兘杩愯孭HP鐩稿叧锻戒护銆傚皢PHP瑙i喷鍣ㄧ殑璺寰勬坊锷犲埌绯荤粺鐜澧冨彉閲忎腑锛岃繖镙锋棤璁哄湪锻戒护琛岃缮鏄鑴氭湰涓閮藉彲浠ユ柟渚垮湴璋幂敤PHP锻戒护銆
鍏銆侀獙璇佸畨瑁锛氩畬鎴愭墍链夊畨瑁呭拰閰岖疆钖庯纴阃氲繃鍒涘缓涓涓绠鍗旷殑PHP鏂囦欢骞惰块梾璇ユ枃浠舵潵楠岃瘉PHP鐜澧冩槸钖︽垚锷熸惌寤恒傚傛灉涓鍒囬‘鍒╋纴浣犲皢鐪嫔埌鍖呭惈PHP淇℃伅镄勯〉闱锛岃瘉鏄庝綘镄凯HP鐜澧冨凡缁忔g‘閰岖疆骞跺彲浠ヨ繍琛屻
‘叁’ 如何使用Dreamweaver CS6编写PHP程序,如何使用DW创建PHP站点
我们都知道,DW即Dreamweaver的缩写,这是个非常优秀的可视化的网页制作工具,但是你知道吗?它现在早已经超出了早前版本的功能了,针对不同的WEB开发者,它都有相应的集成环境,下面我们就一起来学习一下吧。
1、今天我们以DWCS6为例,演示一下创建一个动态站点。由于DWCS6为Adobe公司最新版的DW,所以,其对动态语言增加了很多友好的支持,例如:代码补全、代码提示、语法检查等,那么用它来编写PHP程序已经很给力了。
2、首先运行你桌面上的这个:
DreamweaverCS6图标,然后:
3、单击菜单上的“站点”-“新建站点”
4、这个时候,我们给站点起一个名称,例如:MyPHPWebSite,在本地站点文件夹中选择一个路径
由于我的PHP环境安装的是集成的Appserv(我使用的版本是AppServ 2.5.9),所以,我在选择站点根目录的时候,直接选择了Appserv目录下的www目录,注意,如果你使用的是其他集成环境,或者你是自己单独配置的PHP运行环境,那么,你可以选择你自己的站点根目录。
5、选择好以后,点击下方的“保存”
还有一个需要说明的是:一般我们的站点根目录下会有很多网站,有时候我们为了区分这些网站,又设置了子目录,比如www下有site01、site02、site03……多个站点,所以为了不让网站文件混杂在一起,我建议也设置子目录
6、然后再点击保存按钮,这样我们点击面板上“文件”按钮,就可以看到我们新建的站点了:
7、如此一来,我们就正确建好了PHP站点,这时,我们就可以新建文件和目录开始编写程序了,在站点上右击“新建文件”
就可以新建一个php文件,但是我们实际发现,新建了一个untitled.html文件
8、这说明我们的站点还只是静态站点,不能直接新建php文件,这个用户体验很不好,如果不嫌麻烦,可以直接右击untitled.html重命名,连同扩展名一起改,直接改成index.php,也不是不可以,但是这样实在不爽(我们一般修改文件不随意修改扩展名,防止误改,因为过一段时间,这个文件原来是什么扩展名又不记得了,改了扩展名,还容易打不开)。下面我们完善一下这个不方便之处。
9、我们依次点击菜单上的“站点”-“管理站点”
10、会弹出一个管理站点对话框,我们找到刚才我们新建的MyPHPWebSite,然后点击下面的“编辑”图标
11、这时候,在弹出的站点对话框中,点击“服务器”
12、然后点击这个“+”添加新服务器
13、弹出一个看上去很复杂的层。
14、这里,服务器名称任意写,自己取名,连接方法我们选择本地/网络,因为我们是做测试,PHP环境是安装在本地,(如果你有FTP,你可以使用FTP)。
16、然后切换到高级选项
我们选择一个服务器模型,由于我们使用PHP编程,本例我们选择PHP MySQL,这里还有其他选项
我们要根据自己的WEB开发语言来选择,如果你使用的JSP,那么请你选择JSP。是什么语言就选择什么语言。选好后点击“保存”。
17、然后就可以看到我们配置好的服务器站点了
18、我们为了编码方便,就选择一个风格,我选择“编码人员(高级)”风格
19、然后在文档中开始编写代码,如果你嫌弃DW生成的那几行代码碍事,全选,直接删了也无妨。
20、写好,保存(ctrl+s),然后直接按F12键就可以预览效果了