Maison  >  Article  >  développement back-end  >  Utiliser les fonctions de la série de sockets pour vous connecter aux services TCP

Utiliser les fonctions de la série de sockets pour vous connecter aux services TCP

angryTom
angryTomavant
2020-01-31 17:24:173227parcourir

Utiliser les fonctions de la série de sockets pour vous connecter aux services TCP

Tout d'abord, il doit y avoir un service TCP. Nous utilisons les fonctions de la série socket en php pour implémenter

<?php

//创建socket套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//设置阻塞模式
socket_set_block($socket);
//为套接字绑定ip和端口
socket_bind($socket,&#39;127.0.0.1&#39;,3046);
//监听socket
socket_listen($socket,4);

while(true)
{
    //接收客户端请求
    if(($msgsocket = socket_accept($socket)) !== false)
    {
        //读取请求内容
        $buf = socket_read($msgsocket, 8192);
        echo "Received msg: $buf \n";
        $str = "this is a service message";
        //向连接的客户端发送数据 
        socket_write($msgsocket, $str,strlen($str));
        //操作完之后需要关闭该连接否则 feof() 函数无法正确识别打开的句柄是否读取完成
        socket_close($msgsocket);
    }
}

Connectez-vous au service TCP :

Utilisez les fonctions de la série socket pour vous connecter

<?php
$st="socket send message";
$length = strlen($st);
//创建tcp套接字
$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
//连接tcp
socket_connect($socket, &#39;127.0.0.1&#39;,3046);
//向打开的套集字写入数据(发送数据)
$s = socket_write($socket, $st, $length);
//从套接字中获取服务器发送来的数据
$msg = socket_read($socket,8190);

echo $msg;
//关闭连接
socket_close($socket);

Utiliser les fonctions de la série de sockets pour vous connecter aux services TCPUtilisez fsockopen pour vous connecter

<?php
//使用 fsockopen 打开tcp连接句柄
$fp = fsockopen("tcp://127.0.0.1",3046);
$msg = "fsockopen send message";
//向句柄中写入数据
fwrite($fp,$msg);
$ret = "";
//循环遍历获取句柄中的数据,其中 feof() 判断文件指针是否指到文件末尾
while (!feof($fp)){
    stream_set_timeout($fp, 2);
    $ret .= fgets($fp, 128);
}
//关闭句柄
fclose($fp);
echo $ret;

Utiliser les fonctions de la série de sockets pour vous connecter aux services TCPUtiliser la connexion stream_socket_client

<?php
//使用 stream_socket_client 打开 tcp 连接
$fp = stream_socket_client("tcp://127.0.0.1:3046");
$msg = "fsockopen send message";
//向句柄中写入数据
fwrite($fp,$msg);
$ret = "";
//循环遍历获取句柄中的数据,其中 feof() 判断文件指针是否指到文件末尾
while (!feof($fp)){
    stream_set_timeout($fp, 2);
    $ret .= fgets($fp, 128);
}
//关闭句柄
fclose($fp);
echo $ret;

Utiliser les fonctions de la série de sockets pour vous connecter aux services TCP

Tutoriels d'articles connexes recommandés : Tutoriel php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer