网站首页 > 文章中心 > 其它

php向指定地址发送数据

作者:小编 更新时间:2023-08-25 13:23:06 浏览量:265人看过

如何在PHP中使用socket+XML发送数据包

接收指定IP的数据包,其他IP都要过滤吧,那就用防火墙来搞吧

php向指定地址发送数据-图1

使用的是client段的获取方式,用client的可以指定IP,代码大概如下

public void SendMessage()

{

ASCII = Encoding.ASCII;

// 构造用于发送的 字节缓冲.

Byte[] sendBytes = ASCII.GetBytes(SEND_MESSAGE);

// 构造用于接收的 字节缓冲.

// IP地址.

// 接入点.

IPEndPoint ephost = new IPEndPoint(localAddr, PORT);

// 第一个参数:AddressFamily = 指定 Socket 类的实例可以使用的寻址方案.

// Unspecified 未指定地址族.

php向指定地址发送数据-图2

//

// 第二个参数:SocketType = 指定 Socket 类的实例表示的套接字类型.

// Stream 一个套接字类型,支持可靠、双向、基于连接的字节流,而不重复数据,也不保留边界.

// 此类型的 Socket 与单个对方主机通信,并且在通信开始之前需要建立远程主机连接.

// 第三个参数:ProtocolType = 指定 Socket 类支持的协议.

// Tcp 传输控制协议 (TCP).

Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

try

// 尝试连接主机.

s.Connect(ephost);

//Console.WriteLine("向服务器发送到了:{0}", SEND_MESSAGE);

// 向主机发送数据.

// s.Send(sendBytes, sendBytes.Length, SocketFlags.None);

// 接收服务器的应答.

StringBuilder buff = new StringBuilder();

// while (bytes 0)

// {

// 将缓冲的字节数组,装换为字符串.

// String str = ASCII.GetString(recvBytes, 0, bytes);

String str = "";

for (int i = 0; i recvBytes.Length; i++)

str = str + recvBytes[i];

}

int iCount = 0;

// 加入字符串缓存

buff.Append(str);

// 再次接受,看看后面还有没有数据.

//bytes = s.Receive(recvBytes, recvBytes.Length, SocketFlags.None);

// }

textBox1.Text = iCount.ToString();

catch (Exception ex)

MessageBox.Show("连接/发送/接收过程中,发生了错误!");

MessageBox.Show(ex.Message);

//Console.WriteLine("连接/发送/接收过程中,发生了错误!");

//Console.WriteLine(ex.Message);

//Console.WriteLine(ex.StackTrace);

finally

s.Close();

php 给另外一个php网页发送数据,只管发送不需要接收

同一个域名下的就用ajax直接请求,不同域名下的话就要curl 做请求

php表单数据发送到指定邮件

然后自定义一个函数sendMail(函数里的C是thinkphp里获取配置文件的方法,自己在不是tp里的话使用直接require就可以了)

然后在相关代码里使用调用sendMail发送邮件,这里以ThinkPHP里的controller为例子,使用方法如下:

发送成功后显示 'Done!':

然后就可以去邮箱查看是否收取到邮件咯.

就是这么简单.

参考:网页链接

如何从一个php文件向另一个地址post数据

php调接口都是通过curl来完成的.

下面是我项目中的一个方法:

$url 是要post的地址

$header 请求头,如果模拟浏览器访问需要

$timeout 超时时间

//公共获取指定网页内容

if(empty($url))?return?$url;

$curl?=?curl_init();

curl_setopt($curl,?CURLOPT_URL,$url);//请求url地址

curl_setopt($curl,?CURLOPT_HTTPHEADER?,?$header?);?//构造IP

if(!empty($params)?count($params)?0){

curl_setopt($curl,?CURLOPT_POST,?true);

//Request?Payload格式数据

if(isset($params['is_json'])?$params['is_json']?===?true){

unset($params['is_json']);

$params?=?json_encode($params);

}else{

$params?=?http_build_query($params);

curl_setopt($curl,?CURLOPT_POSTFIELDS,?$params);??

//curl_setopt($curl,?CURLOPT_HEADER,?true);//是否返回响应头信息

curl_setopt($curl,?CURLOPT_RETURNTRANSFER,?true);//是否将结果返回

curl_setopt($curl,?CURLOPT_FOLLOWLOCATION,?true);//是否重定向

curl_setopt($curl,?CURLOPT_SSL_VERIFYPEER,?false);?//?只信任CA颁布的证书?

//curl_setopt($curl,?CURLOPT_CAINFO,?$cacert);?//?CA根证书(用来验证的网站证书是否是CA颁布)?

//?从证书中检查SSL加密算法是否存在

curl_setopt($curl,?CURLOPT_SSL_VERIFYHOST,?FALSE);

curl_setopt($curl,?CURLOPT_HTTP_VERSION,?CURL_HTTP_VERSION_1_0);?

//curl_setopt($curl,?CURLOPT_HTTPHEADER,?array("Expect:?"));?

curl_setopt($curl,?CURLOPT_CONNECTTIMEOUT,?$timeout);//用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;

curl_setopt($curl,?CURLOPT_TIMEOUT,?$timeout);//用来告诉成功PHP脚本,从服务器接收缓冲完成前需要等待多长时间.如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用.

//?自动设置Referer

curl_setopt($curl,?CURLOPT_AUTOREFERER,?1);

//setcookie('cookie_jar',?$cookie_jar);?//保存cookie路径

php向指定地址发送数据-图3

$data?=?curl_exec($curl);?//执行?

curl_close($curl);

return?$data;

PHP发送数据到指定IP计算机

要看你是同步还是异步了,异步的话,每次发送都要走三次握手,再计算总时间

你要快就同步,同时发1000台计算机,不用等每一次的返回是否正确.

以上就是土嘎嘎小编为大家整理的php向指定地址发送数据相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章