php socket实例

之前一直听说socket,也没有研究过。最近在研究golang。简单的研究了一下golang的socket。今天也顺便在网上看看php的socket。总结一个简单的例子。

服务器端的代码:

01//socket绑定的地址
02define("HOST", "localhost");
03 
04//需要监听的端口
05define("PORT", "8001");
06 
07// 设置超时时间
08set_time_limit(0);
09 
10// 创建一个Socket
11$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n");
12 
13//绑定Socket到端口
14socket_bind($socket, HOST, PORT) or die("Could not bind to socket\n");
15 
16// 开始监听链接
17socket_listen($socket, 3) or die("Could not set up socket listener\n");
18 
19//写一个循环不断监听 连接过来的socket
20while(true){
21    print_r("\n\nWaiting client socket ... \n");
22 
23    //等待一个socket的连接
24    $connection = socket_accept($socket);
25 
26    //将数据输出给客户但socket
27    socket_write($connection, "Hello client\n");
28 
29    // 获得客户端的输入
30    $input = socket_read($connection, 1024) or die("Could not read input\n");
31 
32    //输出客户端传递过来的数据
33    print_r($input);
34 
35    //关闭客户端的socket连接
36    socket_close($connection);
37}
38 
39// 关闭sockets
40socket_close($socket);

客户端地址:

01<?php
02//socket绑定的地址
03define("HOST", "localhost");
04 
05//需要监听的端口
06define("PORT", "8001");
07 
08// 设置超时时间
09set_time_limit(0);
10 
11// 创建一个Socket
12$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n");
13 
14//连接服务器
15socket_connect($socket,HOST, PORT);
16 
17echo("Writing to server socket ...\n");
18 
19//尝试将数据写给服务器
20if (!socket_write($socket, "Hello server\n")) {
21    echo("Write failed \n\n");
22}
23 
24//从服务器获取数据
25$data = socket_read($socket, PORT);
26echo $data;
27?>

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>