今天试着写一个 PHP 与 C 语言通过socket通讯的程序,看过PHP手册,发现有好几种方式可以建立socket 客户端.1、通过 fsockopen() 建立socket连接,然后用 用fputs() 发送消息,用 fgets() 接收消息。2、通过 socket_create() 建立 socket 连接,然后用 socket_send() or socket_write() 发送消息,用 socket_recv() or socket_read() 发送消息。 很奇怪,我在手册上看到了这样一段话"本扩展模块是实验性的。该模块的行为,包括其...
最近在做的项目有一项需要耗时任务在后台运行的功能,虽然PHP并不是非常适合做常驻后台的守护进程,但是由于项目主要代码都是基于PHP实现,如 果运行在后台的守护进程改换别的语言会非常不方便。所以不可避免会涉及到Web端和Daemon部分的通信,Socket是一个不错的方式。Socket是什么socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句...
本文实例讲述了php使用socket post数据到其它web服务器的方法。分享给大家供大家参考。具体实现方法如下:
function post_request($url, $data, $referer=‘‘) {// Convert the data array into URL Parameters like a=b&foo=bar etc.$data = http_build_query($data);// parse the given URL$url = parse_url($url);if ($url[‘scheme‘] != ‘http‘) { die(‘Error: Only HTTP request are supported !‘);}// extract host an...
本篇文章分享一个简单的socket示例,用php。实现一个接收输入字符串,处理并返回这个字符串到客户端的TCP服务。产生一个 socket 服务端
<?php
/*文件名:socket_server.php*/
// 设置一些基本的变量
$host="127.0.0.1";//Socket运行的服务器的IP地址
$port=1234;//Socket运行的服务器的端口,端口取值为1到65535之间的数字,前提是这个端口未被使用
// 设置超时时间,这里设置为永不超时,确保PHP在等待客户端连接时不会超时。
set...
Socket可以理解为两台计算机相互通信的通道。用法:使用fsockopen()函数具体用法详见上篇文章。函数的参数为URL、端口号、一个存放错误编号的变量、一个存放错误信息字符串的变量和超时等待时间。(只有第一个参数是必须的)常见的端口表:端口号主要用途21FTP22SSH23Telnet25SMTP80Web110POP其中,组成URl的几个部分为:协议名(scheme),主机(host),端口号(port),文件路径(path),查询参数(query)。当url是 http://ww...
PHPMailer项目地址:https://github.com/PHPMailer/PHPMailer项目中用到PHPMailer,使用过程中报错:"Connection failed. Error #2: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:"由于我用的第三方smtp是ssl链接,所以需要再添加一些参数:$mail->SMTPOptions = array(‘ssl‘ => array(‘verify_peer‘ => false,‘verify_peer_name‘ => false,‘allow_self_signed‘ => true)
);官方是这...
1.修改recaptchalib.php中的两个方法 代码如下:function _recaptcha_http_post($host, $path, $data, $port = 80) { $req = _recaptcha_qsencode ($data); $response = ; $url = $host.$path; $post_data = $req; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 我们在POST数据哦! curl_setopt($ch, CURLOPT_POST, 1); // 把post的变量加上 curl_setopt($ch, CURLOP...
使用php直接打开socket端口进行发信的小程序特点是使用smtp认证,能够更好的使用满足一般网友建站需要。整个源码附在本文中,同样内容可到下列地址下载。转载请注明出处。http://www.knowsky.com/download/phpsendmail.rar/******************************************//* Php webmail sender *//* www.ebugs.org *//* Copyright 富翁 in im286.com 2005.03.07 *//* 转载请...
<? * 名称:用Socket发送电子邮件 * 描述:本类实现了直接使用需要验证的SMTP服务器直接发送邮件,参考文章《用Socket发送电子邮件》作者:limodou * 此文章比较早,他是用不用验证SMTP服务器发送邮件,现在基本上SMTP服务器都需要验证了,所以这个文章里的类 意义也不是很大!同时参考了[RFC 1869]和PHP手册!!和上文还有不同的是我用的不是fsockopen()函数 具体你自己看吧!!我刚刚测试通过了,很...
用Socket发送电子邮件在作者所申请的几个PHP 主页空间中,能够提供mail功能的实在不多,总是调用完mail()函数之后就毫 无下文了。但是电子邮件在网上生活中的作用越来越大。想一想网虫上网不收邮件能叫真正的网虫吗?邮件 的作用我不想再说了,但是如果主页空间不支持mail()发送那么怎么办呢?我也想过通过socket来实现邮件 发送,但无奈对用php 进行socket编程不熟悉,再加上发送邮件要用到SMTP协议,又要读不少的英文了,所 以一...
为php安装socket扩展的方法:1、执行【make&make install】命令编译安装;2、编辑php.ini配置文件,开启【extension=sockets.so】;3、重启apache。首先编译安装(推荐教程:php视频教程)#cd /home/php5.2.1/ext/sockets
#/server/php/bin/phpize
#./configure --prefix=/usr/local/php/lib --with-php-config=/server/php/bin/php-config --enable-sockets
#make
#make install然后修改/usr/local/php/etc/php.ini文件#extensio...
php socket设置超时的方法:首先如果【$waitAckSec=0】,则返回成功发送的字节;然后如果【$waitAckSec】大于0,则返回发送后接收到得内容;最后任何情况下,失败都返回FALSE。【相关学习推荐:php编程(视频)】php socket设置超时的方法:php创建socket的方法和设置超时的方法,贴出来分享一下//如果$waitAckSec=0,则返回成功发送的字节//如果$waitAckSec大于0,则返回发送后接收到得内容//任何情况下,失败都返回FALSEfunction...
php socket乱码的解决办法:首先通过“mb_detect_encoding(socket_last_error($socket))”方法对错误信息的编码进行检查;然后将错误信息转为“UTF-8”编码即可。PHP编写socket错误信息乱码问题问题由于php项目默认都是使用的UTF-8编码,由于使用socket编程时的报错信息不是使用的UTF-8编码,导致输出的错误在浏览器和控制台上显示的都是乱码。错误提示如下:socket_connect(): unable to connect [10061]: ??????????????????????...
PHP编写socket错误信息乱码的解决办法:首先对错误信息编码进行检查,代码为【mb_detect_encoding(socket_last_error($socket)】;然后将错误信息转为【UTF-8】编码;最后转换输出结果正常即可。PHP编写socket错误信息乱码的解决办法:1、首先,通过以下代码对错误信息的编码进行检查mb_detect_encoding(socket_last_error($socket))结果输出为ASCII。2、通过第一步的检查结果可知错误信息的编码不是UTF-8,所以需要将错误信息转为...
PHP如何实现简单的Socket首先使用PHP制作的Socket服务端,其主要是设置Socket的IP地址及端口号;然后监听端口,如果有客户端连接的话,则接收连接请求和数据,最后处理数据并且返回数据即可。示例代码:<?php
//确保在连接客户端时不会超时
set_time_limit(0);
//设置IP和端口号
$address = "127.0.0.1";
$port = 2048; //调试的时候,可以多换端口来测试程序!
/*** 创建一个SOCKET * AF_INET=是ipv4 如果用ipv6,则参数为 AF_INE...