php socket 客户端代码
<?php
class SendDevAction{
//log日志文件
private $logDevFile = "";
//日志字符串
private $logStr = "";
//用于发送接收的socket对象
private $socket;
//socket连接对象
private $connect;
//对方服务器ip
private $host = "211.155.82.229";
//服务器端口
private $port = 14527;
//接收回传字符串长度
private $getStrLength = 16384; function __construct(){
//确定日志文件路径,(自定义)
$this->logDevFile = "Temp/socket_log/" . date("Y-m-d") . "Dev.log"; //创建一个socket,定义相关属性。AF_INET 在socket中定义为常量值为2,SOCK_STREAM常量值为1,SOL_TCP值为6
$this->socket = socket_create ( AF_INET, SOCK_STREAM, SOL_TCP );
//连接对方机器
$this->connect = socket_connect ( $this->socket, $this->host, $this->port ); //第一次握手,如果失败则返回不再执行
$this->firstHandshake();
} //socket第一次握手
function firstHandshake(){
//日志写入本次握手时间,和远程服务器(发送+接收)一次算一次握手
$this->logStr .= "\r\n\r\n".date("Y-m-d H:i:s")."\r\n"; //要发送的字符串
$sendStr = "hello world";
//日志写入发送的字符串
$this->logStr .= $sendStr."\r\n";
//发送字符串
socket_write ( $this->socket, $sendStr, strlen ( $sendStr ) ); //接收
$getStr = socket_read ( $this->socket, $this->getStrLength );
/*
//如果接收字符串过大,可循环多次接收直到接收完整
$getStr = "";
while(true){
$getStr .= socket_read( $this->socket,$this->getStrLength,PHP_BINARY_READ);
//根据回传字符串内容格式判断已接收完全字符串,这里回传字符串以 }] 结尾,并且全文只包含一次 }] 字符串
if(substr_count($getStr, "}]") > 0){
break;
}
}
*/
//日志写入接收完成时间
$this->logStr .= date("Y-m-d H:i:s")."\r\n";
//日志写入接收字符串
$this->logStr .= $getStr."\r\n\r\n"; //将日志内容补充写入日志文件文本的最下面,如无日志文件则生成新日志文件
file_put_contents($this->logDevFile, $this->logStr,FILE_APPEND);
//关闭socket连接
socket_close ( $this->connect );
//关闭socket对象
socket_close ( $this->socket );
}
}
//此socket代码只是发送消息的客户端,不是接收的服务器端,服务器端以后补充
$sendDevAction = new SendDevAction();
php socket 客户端代码的更多相关文章
- socket模块实现基于UDP聊天模拟程序;socketserver模块实现服务端 socket客户端代码示例
socket模块 serSocket.setblocking(False) 设置为非阻塞: #coding=utf-8 from socket import * import time # 用来存储所 ...
- SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码)
SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码) 摘自: https://blog.csdn.net/sjin_1314/article/det ...
- java版简易socket客户端
android项目需要使用到心跳, 于是编写了一个简易的socket客户端程序 主要功能是给服务端发送心跳包,保持在线状态 没有使用框架,这样避免了需要引入包,直接使用的阻塞Socket通信. 主要逻 ...
- Socket通信代码(原理)
1.运行环境:NetBeans IDE 6.0.1 2.说明:先运行服务器端,再运行客户端. 3.服务器端代码: 新建java类Test import java.net.*; import java. ...
- c++ socket 客户端库 socks5 客户端 RudeSocket™ Open Source C++ Socket Library
介绍 一个c++ socket 客户端库 http://www.rudeserver.com/socket/index.html The RudeSocket™ Open Source C++ Soc ...
- php socket客户端及服务器端应用实例
经常有朋友会对php的socket应用充满疑惑,本文就以实例代码作一讲解,希望能对初学php的朋友起到一点帮助作用 具体代码如下: 1.服务器端代码: <?php class SocketSer ...
- 【RL-TCPnet网络教程】第20章 RL-TCPnet之BSD Socket客户端
第20章 RL-TCPnet之BSD Socket客户端 本章节为大家讲解RL-TCPnet的BSD Socket,学习本章节前,务必要优先学习第18章的Socket基础知识.有了这些基础知 ...
- SFTP客户端代码示例
参考链接:SFTP客户端代码示例 操作系统:Windows7/8,VS2013 环境:libssh2 1.4.3.zlib-1.2.8.openssl-1.0.1g 原文: “从http://www. ...
- TCP服务器/客户端代码示例
TCP服务器代码: #include <errno.h> #include <string.h> #include <stdlib.h> #include < ...
随机推荐
- hadoop map reduce 实例wordcount的使用
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /wordcount.txt /wc/output3
- 解决:AppMsg - Warning: calling DestroyWindow in CWnd::~CWnd; OnDestroy or PostNcDestroy in derived class will not be called
类似的还有:AppMsg - Warning: Destroying non-NULL m_pMainWnd(这是因为你既没有自己delete,也没有调用DestroyWindow) 首先解决第一个, ...
- 启动MFC程序的时候报错:0xC0000005: 读取位置 0x00000000 时发生访问冲突
此程序的结构是 MouseCap.h #pragma once #include <afxwin.h> class MouseCapApp : public CWinApp { publi ...
- PLSQL 的简单命令之四
-- 子查询 -- in 等于表中的任意一个 select * from Stu where id in (select id from scores) -- 和子查询返回结果中的某一个值比较成立即可 ...
- Eureka的故事,专注能让你看到别人看不到的事情
有这么一句古老的箴言: 如果你手里有一把锤子,所有东西看上去都像钉子. 其实这句话已经是老调中的老调重弹了,我们程序员有很多锤子:OO.设计模式.语言(C, C++, Java, Python, Ru ...
- 由浅到深讲解C#-LINQ
在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在fore ...
- SQL Server中使用正则表达式
SQL Server 2005及以上版本支持用CLR语言(C# .NET.VB.NET)编写过程.触发器和函数,因此使得正则匹配,数据提取能够在SQL中灵活运用,大大提高了SQL处理字符串,文本等内容 ...
- Java基础之处理事件——添加工具提示(Sketcher 9 with tooltips)
控制台程序. 在Java中实现对工具提示的支持是非常简单的,秘诀仍在我们一直使用的Action对象中.Action对象拥有存储工具提示文本的内置功能因为文本是通过SHORT_DESCRIPTION键提 ...
- paper 92:图像视觉博客资源2之MIT斯坦福CMU
收录的图像视觉(也包含机器学习等)领域的博客资源的第二部分,包含:美国MIT.斯坦福.CMU三所高校 1)这些名人大家一般都熟悉,本文仅收录了包含较多资料的个人博客,并且有不少更新,还有些名人由于分享 ...
- 夺命雷公狗ThinkPHP项目之----企业网站2之数据库的快速设计
我们在一个项目的时候,花费最多事件的估计还是数据库的时间了,我们的数据库暂时就这样设计好了: 暂时我们的数据库就这样设计好了用下先,建好后如下所示: