有关socket的通讯用法

下边是应和的代码:
PHP 代码:

服务端

对TCP/IP、UDP、Socket编制程序那么些词你不会很素不相识吧?随着互联网技能的升华,这几个词充斥着大家的耳朵。那么自个儿想问:

复制代码 代码如下:

 代码如下

摘录于:

<?
// 设置有个别主旨的变量
$host = “192.168.1.99”;
$port = 1234;
// 设置超时时间
set_time_limit(0);
// 创立叁个Socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die(“Could not
create
socket\n”);
//绑定Socket到端口
$result = socket_bind($socket, $host, $port) or die(“Could not bind
to
socket\n”);
// 开始监听链接
$result = socket_listen($socket, 3) or die(“Could not set up socket
listener\n”);
// accept incoming connections
// 另三个Socket来拍卖通讯
$spawn = socket_accept($socket) or die(“Could not accept incoming
connection\n”);
// 获得客户端的输入
$input = socket_read($spawn, 1024) or die(“Could not read input\n”);
// 清空输入字符串
$input = trim($input);
//管理客户端输入并回到结果
$output = strrev($input) . “\n”;
socket_write($spawn, $output, strlen ($output)) or die(“Could not
write
output\n”);
// 关闭sockets
socket_close($spawn);
socket_close($socket);
?>

<?php
    set_time_limit(0);
    $host=”localhost”;
    $port=1001;
     
    //创制贰个连连
    $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or die(“cannot
create socketn”);
    //绑定socket到端口
    $result=socket_bind($socket,$host,$port) or die(“cannot bind port
to socketn”);
    //初步监听那一个端口
    $result=socket_listen($socket,4) or die(“could not set up socket
listenn”);
    //接受连接,另贰个socket来管理通讯
    $msgsock=socket_accept($socket) or die(“cannot accept incoming
connectionn”);
    if($msgsock){
        echo date(“Y-m-d H:i:s D a”);
    }
    //读取客户端发送过来的音信
    $input=socket_read($msgsock,1024) or die(“cannot read inputn”);
    $input=trim($input);
    $output=strrev($input).”顺序反过来了吧n”;
    //对收取到的音讯进行管理,然后回到到客户端
    socket_write($msgsock,$output,strlen($output)) or die(“cannot
write”);
    //关闭socket连接
    socket_close($msgsock);
    socket_close($socket);
 
?>

1.什么是TCP/IP、UDP?

您恐怕感兴趣的稿子:

  • 早先php socket编制程序
  • 应用PHP Socket 编制程序模拟Http
    post和get哀告
  • php使用socket编制程序示例
  • PHP SOCKET编制程序详解

客户端

2.Socket在哪个地方啊?

 代码如下

3.Socket是什么样吧?

<?php
    set_time_limit(0);
    $host=”localhost”;
    $port=1001;
     
    //创制一个socket
    $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or die(“cannot
create socketn”);
     
    $conn=socket_connect($socket,$host,$port) or die(“cannot connect
servern”);
     
    if($conn){echo “client connect ok!”;}
     
    socket_write($socket,”hello world!”) or die(“cannot write
datan”);
     
    $buffer=socket_read($socket,1024,PHP_NORMAL_READ);
     
    if($buffer){
        echo “response was:”.$buffer.”n”;
    }          
    socket_close($socket);
?>

  1. 你会选用它们啊?

什么是TCP/IP、UDP?

TCP/IP(Transmission Control Protocol/Internet
Protocol)即传输调控协议/网间协议,是多个工业标准的协议集,它是为广域网(WANs)设计的。

UDP(User Data
Protocol,用户数据报业协会议)是与TCP相对应的切磋。它是属于TCP/IP协议族中的一种。

这里有一张图,注脚了这几个协议的涉及。

TCP/IP协议族包涵运输层、互连网层、链路层。将来您精通TCP/IP与UDP的涉及了吗。

Socket在哪里吧?

在图第11中学,大家从未观看Socket的黑影,那么它终究在哪个地方吧?仍然用图来讲话,一览驾驭。

原来Socket在这里。

Socket是何等呢?

Socket是应用层与TCP/IP协议族通讯的中级软件抽象层,它是一组接口。在设计形式中,Socket其实正是一个伪装方式,它把复杂的TCP/IP协议族隐敝在Socket接口后边,对用户来讲,一组轻便的接口就是一体,让Socket去组织数据,以合乎钦命的商量。

你会动用它们啊?

前人已经给大家做了累累的事了,网络间的通讯也就大约了重重,但总归如故有挺多专业要做的。以前听到Socket编程,认为它是比较高深的编制程序知识,不过即使弄清Socket编制程序的行事规律,神秘的面罩也就揭秘了。

三个活着中的场景。你要打电话给三个有相爱的人,先拨号,朋友听到电话铃声后提及电话,那时你和您的恋人就确立起了连接,就可以说话了。等调换截止,挂断电话截止此番交谈。 
 
生活中的场景就表达了那工作规律,可能TCP/IP协议族就是诞生于生存中,那也不必然。

先从服务器端说到。服务器端先开首化Socket,然后与端口绑定(bind),对端口举行监听(listen),调用accept阻塞,等待客户端连接。在那时若是有个客户端初阶化一个Socket,然后连接服务器(connect),假使三番五次成功,那时客户端与服务器端的总是就创造了。客户端发送数据乞请,服务器端接收必要并管理央浼,然后把应对数据发送给客户端,客户端读取数据,最后关闭连接,一遍交互停止。

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() 删除三个一度分配的iovec

socket_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,若无一些名则暗中同意当前socket

socket_recvmsg() 从iovec里收受消息

socket_select() 多路选取

socket_send() 那几个函数发送数据到已一连的socket

socket_sendmsg() 发送音信到socket

socket_sendto() 发送新闻到钦点地方的socket

socket_set_block() 在socket里设置为块方式

socket_set_nonblock() socket里安装为非块方式

socket_set_option() 设置socket选项

socket_shutdown() 那些函数允许你关闭读、写、或许钦定的socket

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图