如题,再经过多方资料的查找 在web端很少有能进行socket通讯的东西,发现了HTML5 + JS的方式实现了Websocket 但是。。。这个是websocket 并不是传统socket,也许原理上差不多吧,但这不是我想要的。
找这个东西的原因是,我有一个前端WEB页面,需要向后端的Linux C的代码程序进行通讯,也许方式有很多,CGI,POST,GET等等等等,但是我还是习惯用socket这种方式,原因有几个,灵活拓展性好,相比其他几种 需要在程序里嵌入一些HTML语言的一些东西,感觉很乱。所以最终决定用socket。
于是我遇到了第二个问题,那就是web端如何实现socket通讯呢? 通过特殊的面向搜索编程的方法,终于让我找到一个捷径—-那就是PHP大法。通过php可以很容易实现socket通讯,而且下载了一个demo改了下 试了一下,发现可以轻松的和我后端socket程序进行通讯。所以很棒,我就把这个demo小小记录一下。如有侵权,联系我。。。
因为我的后端程序是socket的server端,所以我的demo用的是clent端。
TCP/IP Connection\n"; $port = 1921; //别问我为啥用1921,因为我很爱党 $ip = "192.168.0.115"; //换成自己的服务端主机IP /* +------------------------------- * @socket连接整个过程 +------------------------------- * @socket_create * @socket_connect * @socket_write * @socket_read * @socket_close +-------------------------------- */ $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket < 0) { echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n"; }else { echo "OK.\n"; } echo "试图连接 '$ip' 端口 '$port'...\n"; $result = socket_connect($socket, $ip, $port); if ($result < 0) { echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n"; }else { echo "连接OK\n"; } $in = "hello word"; $out = ''; if(!socket_write($socket, $in, strlen($in))) { echo "socket_write() failed: reason: " . socket_strerror($socket) . "\n"; }else { echo "发送到服务器信息成功!\n"; echo "发送的内容为:$in
"; } while($out = socket_read($socket, 8192)) { echo "接收服务器回传信息成功!\n"; echo "接受的内容为:",$out; } echo "关闭SOCKET...\n"; socket_close($socket); echo "关闭OK\n"; ?>