4.php socket

来源:互联网 发布:数据分析属经济学吗 编辑:程序博客网 时间:2024/06/03 13:04
socket相关函数:----------------------------------------------------------------------------------------------socket_accept() 接受一个Socket连接socket_bind() 把socket绑定在一个IP地址和端口上socket_clear_error() 清除socket的错误或者最后的错误代码socket_close() 关闭一个socket资源socket_connect() 开始一个socket连接socket_create_listen() 在指定端口打开一个socket监听socket_create_pair() 产生一对没有区别的socket到一个数组里socket_create() 产生一个socket,相当于产生一个socket的数据结构socket_get_option() 获取socket选项socket_getpeername() 获取远程类似主机的ip地址socket_getsockname() 获取本地socket的ip地址socket_iovec_add() 添加一个新的向量到一个分散/聚合的数组socket_iovec_alloc() 这个函数创建一个能够发送接收读写的iovec数据结构socket_iovec_delete() 删除一个已经分配的iovecsocket_iovec_fetch() 返回指定的iovec资源的数据socket_iovec_free() 释放一个iovec资源socket_iovec_set() 设置iovec的数据新值socket_last_error() 获取当前socket的最后错误代码socket_listen() 监听由指定socket的所有连接socket_read() 读取指定长度的数据socket_readv() 读取从分散/聚合数组过来的数据socket_recv() 从socket里结束数据到缓存socket_recvfrom() 接受数据从指定的socket,如果没有指定则默认当前socketsocket_recvmsg() 从iovec里接受消息socket_select() 多路选择socket_send() 这个函数发送数据到已连接的socketsocket_sendmsg() 发送消息到socketsocket_sendto() 发送消息到指定地址的socketsocket_set_block() 在socket里设置为块模式socket_set_nonblock() socket里设置为非块模式socket_set_option() 设置socket选项socket_shutdown() 这个函数允许你关闭读、写、或者指定的socketsocket_strerror() 返回指定错误号的详细错误socket_write() 写数据到socket缓存socket_writev() 写数据到分散/聚合数组

server.php

<?phpecho '<pre>';set_time_limit(0);$ip = '127.0.0.1';$port = 1936;// 创建$sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);if (!$sock) {    $errCode = socket_last_error($sock);    $errMsg = socket_strerror($errCode);    var_dump($errCode);    var_dump($errMsg);    return false;}// 绑定if (!socket_bind($sock,$ip,$port)) {    $errCode = socket_last_error();    $errMsg = socket_strerror($errCode);    var_dump($errCode);    var_dump($errMsg);    return false;}// 监听if (!socket_listen($sock,4)) {    $errCode = socket_last_error();    $errMsg = socket_strerror($errCode);    var_dump($errCode);    var_dump($errMsg);    return false;}print_r($sock);while(true){    $newSock = socket_accept($sock);    if (!$newSock) {        $errCode = socket_last_error();        $errMsg = socket_strerror($errCode);        var_dump($errCode);        var_dump($errMsg);        return false;    }echo 'connection build success <br/>';    $sendClient = '发送到客户端';    if (!socket_write($newSock,$sendClient,strlen($sendClient))) {        echo '发送到客户端失败<br/>';        return false;    }    $buf = socket_read($newSock,8192);    if (!$buf) {        echo '从客户端读取失败';        return false;    }    echo '收到信息'.$buf;}

client.php

<?phperror_reporting(E_ALL);set_time_limit(0);$ip = '127.0.0.1';$port = 1936;$sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);if (!$sock) {    $errCode = socket_last_error($sock);    $errMsg = socket_strerror($errCode);    var_dump($errCode);    var_dump($errMsg);    return false;}print_r($sock);$ret = socket_connect($sock,$ip,$port);print_r($ret);if (!$ret) {    $errCode = socket_last_error($sock);    $errMsg = socket_strerror($errCode);    print_r($errCode);    print_r($errMsg);    return false;}echo 'ok';$buf = socket_read($sock,8192);if (!$buf) {    echo '从服务器收信息失败';    return false;}echo '从服务器收到信息 :'.$buf;return true;

http://www.cnblogs.com/thinksasa/archive/2013/02/26/2934206.html

http://blog.csdn.net/yanhui_wei/article/details/38705879

http://www.oschina.net/code/snippet_1046345_43875

http://www.cnblogs.com/-shu/p/4600995.html

原创粉丝点击