php socket通信机制实例说明与代码

 php socket通信机制实例说明与代码----什么是socket 所谓socket一般也称作"套接字",用于描述ip地址和端口,是一个通讯链的句柄。使用程序一般经过"套接字"向network发出请求也许应对network请求。说白了就是一种通讯机制。它类似于银行,电信啊这一些部分的电话客服业务单元。您打电话的时候,那边会调设置一个人回答您的问题,客服业务单元就相当于socket的服务器端了,您这边呢就相当于用户端了,在和您通话完结前,假设有人在想找和您通话的那个谈话是不可能的,由于您在和他通讯,当然客服业务单元的电话更换机也不会重复调配。

  下面我将举例子来说明一下,socket是怎样工作的。假设您是基于使用层开发的人员并不一定要理解原理,然而能晓得那是更好了。网络有对于socket的php api。下下来用就行了。

  socket服务器server.php // 构建server端socket

  $tcp = getprotobyname("tcp");

  $socket = socket_create(af_inet, sock_stream, $tcp);

  socket_bind($socket, ‘127.0.0.1‘, 10008); //绑定要监听的端口

  socket_listen($socket); //监听端口

  //初始化一个DATA,和用户端通讯

  $buffer = "connect";

  while (true) { // 接受一个socket联接

  $connection = socket_accept($socket);

  if(!$connection){

  echo "connect fail";

  }else{

  echo "socket connectedn"; // 向用户端传送一个信息DATA

  if ($buffer != "") {

  echo "send data to clientn";

  socket_write($connection, $buffer . "n");

  echo "wrote to socketn";

  } else {

  echo "no data in the buffern" ;

  } // 从用户端获得信息

  while ($data = @socket_read($connection, 1024, php_normal_read)) {

  printf("buffer: " . $data . "n"); //获得信息给用户端一个反响

  socket_write($connection, "information receivedn");

  }

  }

  socket_close($connection); //封锁 socket

  printf("closed the socketn");

  }

  ?>

  另外注意,socket用户端client.php

  // 构建用户端的socet联接

  $socket = socket_create(af_inet, sock_stream, sol_tcp);

  $connection = socket_connect($socket, ‘127.0.0.1‘, 10008); //联接服务器端socket

  while ($buffer = @socket_read($socket, 1024, php_normal_read)) { //服务端告诉用户端,自身的形态

  if (preg_match("/not connect/",$buffer)) {

  echo "don`t connectn";

  break;

  } else { //服务器传来信息

  echo "buffer data: " . $buffer . "n";

时间: 2024-11-07 09:48:04

php socket通信机制实例说明与代码的相关文章

php 实例说明 socket通信机制

php 实例说明 socket通信机制 张映 发表于 2010-04-24 分类目录: php 一,socket是什么 什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求.说白了就是一种通信机制.它类似于银行,电信啊这些部分的电话客服部门.你打电话的时候,那边会分配置一个人回答你的问题,客服部门就相当于socket的服务器端了,你这边呢就相当于客户端了,在和你

socket 通信机制的实现

IOS socket 通信机制的实现 2014-11-24 23:12 44人阅读 评论(0) 收藏 举报 socket 套接字, 是基于TCP UDP  协议的  一种通信机制,   它本身就是对TCP 和UDp 协议应用的一种管理 iOS 中 socket 通信 1,我们使用第三方库AsyncSocket 准备工作 1,  把AsyncSocket  加入到我们的工程,   这个玩意 一般是手动的,  如果你使用的是自动的, 需要再变异的时候 添加 fno-objec-arc 2,  使用第

Socket通信客户端和服务端代码

这两天研究了下Socket通信,简单实现的客户端和服务端代码 先上winfrom图片,客户端和服务端一样 服务端代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; usin

C# Socket通信简单实例

一.套接字(socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口. 应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题.多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据.为了区别不同的应用程序进程和连接,许多计算机操作系统为应用

Socket通信机制(学习总结)

一.什么是Socket: 1.Socket是两个程序进行双向数据传输的网络通信的端点,由一个地址和一个端口来标识. 2.两种通信方式:有连接方式TCP.无连接方式UDP(用户数据报协议). 二.有连接方式TCP 1.通信双方在开始时必须进行一次连接过程(三次握手),建立一条通信链路.通信链路提供了可靠的,全双工的字节流服务. Socket是两个进程间通信链的端点,每个socket有两个流:一个输入流和输出流:其中: (1)只要向Socket的输出流写,一个进程就可以通过网络连接向其他进程发送数据

Python socket通信~简单实例

socket编程步骤 服务端创建一个socket,绑定地址和端口,然后监听端口上传入的连接,一旦有连接进来,就通过accept函数接收传入的连接. 客户端也是创建一个socket.绑定远程地址和端口,然后建立连接,发送数据. family 地址簇,用与socket()函数的第一个参数.主要有以下几个 socket.AF_UNIX 用与单一机器下的进程通信 socket.AF_INET 用与服务器之间相互通信,通常都用这个. socket.AF_INET6 支持IPv6 sockettype so

Socket通信简单实例(WCF调用Socket)

服务端: 控制台程序监听 1 /// <summary> 2 /// Server 3 /// </summary> 4 class Program 5 { 6 static Socket serverSocket; 7 static Socket clientSocket; 8 static Thread thread; 9 10 static void Main(string[] args) 11 { 12 IPEndPoint ipep = new IPEndPoint(IP

Socket通信编程实例

客户端: package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(

java Socket通信简单实例

import java.io.*; import java.net.*; public class ClientTest { public static void main(String[] args) throws Exception { Socket s = new Socket("localhost", 8888); DataOutputStream dos = new DataOutputStream(s.getOutputStream()); dos.writeUTF(&qu