日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

使用PHP创建SOCKET服务

發布時間:2025/3/17 php 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用PHP创建SOCKET服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近好奇,接觸接觸PHP的socket編程,發現還是很好玩兒的。下面貼出來demo源碼跟大家分享


Server.php

<?php/*** PHP Socket Server* */ //確保客戶端連接時不會超時 error_reporting(0); set_time_limit(0); //設置地址與端口 $address = '127.0.0.1'; //服務端ip $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() failed : ".socket_strerror(socket_last_error()). "\n"); //阻塞模式 socket_set_block($sock) or die("socket_set_block() failed : ".socket_strerror(socket_last_error()) ."\n");//綁定到socket端口 $result = socket_bind($sock, $address, $port) or die("socket_bind() failed : ". socket_strerror(socket_last_error()) . "\n"); //開始監聽 $result = socket_listen($sock, 4) or die("socket_listen() failed : ". socket_strerror(socket_last_error()) . "\n"); echo "OK\nBinding the socket on $address:$port ...\n"; echo "OK\nNow ready to accept connections.\nListening on the socket ...\n";do {//Never stop the daemon//它接收連接請求并調用一個子鏈接socket來處理客戶端和服務器間的信息$msgsock = socket_accept($sock) or die("sock_accept() failed : ". socket_strerror(socket_last_error()) . "\n");//讀取客戶端數據echo "Read client data \n";$buf = socket_read($msgsock, 8192);echo "Received msg : $buf \n";//數據傳輸,向客戶端寫入返回結果$msg = "welcome \n";socket_write($msgsock, $msg, strlen($msg)) or die("socket_write() failed : ". socket_strerror(socket_last_error()). "\n");//輸出返回到客戶端時,父/子socket都應通過socket_close來終止socket_close($msgsock); }while(true);socket_close($sock);

Client.php

<?php /*** php socket client* */error_reporting(0); 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");$connection = socket_connect($socket, $host, $port) or die("Could not connect server.\n"); socket_write($socket, "Hello Socket!") or die("Write failed.\n"); while($buff = socket_read($socket, 1024, PHP_NORMAL_READ)) {echo "Response was : ". $buff . "\n"; }socket_close($socket);

總結

以上是生活随笔為你收集整理的使用PHP创建SOCKET服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。