php向电脑发送数据包,php发送post数据包

如何向远程电脑发送TCP或UDP数据包?只是像PING命令那么简单吗?

ping命令是ICMP协议,而非tcp和udp所属的tcp/IP协议。

创新互联建站主要从事成都网站设计、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务灌云,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

发送TCP或者UDP数据包,一般是某些程序访问或者发送数据到特定的端口。

例如telent命令,是访问对方TCP 23号端口。 网页访问一般是tcp 80或8080端口。 像这样的都是发送的tcp数据包。 像qq发送聊天信息都是udp协议的数据包。

关于PHP中POST传递参数问题

将数据转换成 json 格式的字符串, 并通过 CURL 的 POST 的形式传递参数给服务端, 但是在服务端无法用 $_POST 获取到数据。后台用 $_POST 获取到的信息为空, 但是可以通过 $post = file_get_contents("php://input") 获取到请求的相关信息。

Coentent-Type 的值为 application/x-www-data-urlencode 和 multipart/form-data 时, php才会将http请求数据包中的数据填进 $_POST 。

如果 POST 的原始数据是一维数组或拼接的标准格式的键值对字符串,那么可以用 $_POST 来获取。

如果要通过 file_get_contents 获取,这种情况下可以发送 json 字符串,用 json_encode 编码转换一下,或者使用 http_build_query 。

1、 区别 PHP 的 $_POST、$HTTP_RAW_POST_DATA 和 php://input

2、 accept 和 content-Type区别

3、 Http Header里的Content-Type

php如何发送和接收JSON数据

对于json,PHP有对应的方法进行操作。

一般而言,json会以字符串形式传给PHP脚本,一般都是放在$_POST里面,

14

?php

// 接收

$json_parameter = $_POST['json_str'];

// 处理, 变成数组

$array = json_decode($json_parameter);

// PHP 把数组数据变成json格式字符串,发给页面

$demo = array(

'key' = 'value',

'key2' = 'value2'

);

$demo_json = json_encode($demo); // 格式是{"key":"value","key2":"value2"}

echo $demo_json;

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

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

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

public void SendMessage()

{

ASCII = Encoding.ASCII;

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

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

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

Byte[] recvBytes = new Byte[256];

// IP地址.

IPAddress localAddr = IPAddress.Parse("192.168.19.81");

// 接入点.

IPEndPoint ephost = new IPEndPoint(localAddr, PORT);

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

// Unspecified 未指定地址族。

// InterNetwork IP 版本 4 的地址。

// InterNetworkV6 IP 版本 6 的地址。

//

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

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

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

// 此套接字类型使用传输控制协议 (Tcp),AddressFamily 可以是 InterNetwork,也可以是 InterNetworkV6。

//

// 第三个参数: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);

// 接收服务器的应答.

Int32 bytes = s.Receive(recvBytes, recvBytes.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;

iCount = int.Parse(str.Substring(13, 6)) ;

// 加入字符串缓存

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做个post提交

看来楼主的截图,写的纯粹的对curl的运用,个人写个简化版的!!

$curl是接口页面。。。作用是取数据然后传递给本页面!!这个页面不是来源页面,只是一个接口文件而已!!如果你连这个页面都不想要,那就只能在本页面自己填写获取数据的代码了!!也就不用使用到post数据了!!

$post_val是post提交所需的数据,如果为空,那就是get获取数据,也就是说$curl要自带参数,这个要看你接口页面的程序所定了!!

例子:

1.php

$b = $_GET['k'];

//这边获取的就是2.php抛出来的数据。。。

$get_value = curl_file_get_contents(‘2.php’,"ct=28lm=0word=".$b."co=23");

var_dump($get_value);//这边就是你想要的代码。。随便你怎么处理了!!

//这个是curl的精简版。。。不用那么多代码

function curl_file_get_contents($curl,$post_val="")

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $curl);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

if($post_val)

{

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_val);

}

$r = curl_exec($ch);

curl_close($ch);

return $r;

}

2.php(接口文件,也相当于把方法写在另一个文件,通过url调用此方法并回传值给1.php!!多用于2个文件不在同一程序内,引用(include)不了,又懒得自己再写个方法,从而通过这种方法获取,比如说淘宝接口)

$get_key = $_POST['word']; //这边就指明了只用能post方式获取数据

..................(这边就是通过获取的$get_key来获取数据,并赋值与$value)......

return $value; //这边把数据抛给1.php(谁调用接口的就抛给谁)

这样写的好处是,假如获取$value的代码很长,这样写可以减少代码量!!不在同一个服务器或者框架下面的程序也可以调用。。。。(同一个框架下的代码可以用include引入进来!!)

先写到着吧!!!还有不懂的可以自己百度下或者追问。。我看到了会继续回答的!!


标题名称:php向电脑发送数据包,php发送post数据包
分享链接:http://azwzsj.com/article/dscisge.html