:用PHP向服務(wù)器發(fā)送HTTP的POST請(qǐng)求,代碼如下:?php/***發(fā)送post請(qǐng)求*@paramstring$url請(qǐng)求地址*@paramarray$post_datapost鍵值對(duì)數(shù)據(jù)*@returnstring*/.
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),惠山網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:惠山等地區(qū)。惠山做網(wǎng)站價(jià)格咨詢:18980820575
接收指定IP的數(shù)據(jù)包,其他IP都要過(guò)濾吧,那就用防火墻來(lái)搞吧
使用的是client段的獲取方式,用client的可以指定IP,代碼大概如下
public void SendMessage()
{
ASCII = Encoding.ASCII;
// 構(gòu)造用于發(fā)送的 字節(jié)緩沖.
Byte[] sendBytes = ASCII.GetBytes(SEND_MESSAGE);
// 構(gòu)造用于接收的 字節(jié)緩沖.
Byte[] recvBytes = new Byte[256];
// IP地址.
IPAddress localAddr = IPAddress.Parse("192.168.19.81");
// 接入點(diǎn).
IPEndPoint ephost = new IPEndPoint(localAddr, PORT);
// 第一個(gè)參數(shù):AddressFamily = 指定 Socket 類的實(shí)例可以使用的尋址方案。
// Unspecified 未指定地址族。
// InterNetwork IP 版本 4 的地址。
// InterNetworkV6 IP 版本 6 的地址。
//
// 第二個(gè)參數(shù):SocketType = 指定 Socket 類的實(shí)例表示的套接字類型。
// Stream 一個(gè)套接字類型,支持可靠、雙向、基于連接的字節(jié)流,而不重復(fù)數(shù)據(jù),也不保留邊界。
// 此類型的 Socket 與單個(gè)對(duì)方主機(jī)通信,并且在通信開(kāi)始之前需要建立遠(yuǎn)程主機(jī)連接。
// 此套接字類型使用傳輸控制協(xié)議 (Tcp),AddressFamily 可以是 InterNetwork,也可以是 InterNetworkV6。
//
// 第三個(gè)參數(shù):ProtocolType = 指定 Socket 類支持的協(xié)議。
// Tcp 傳輸控制協(xié)議 (TCP)。
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
// 嘗試連接主機(jī).
s.Connect(ephost);
//Console.WriteLine("向服務(wù)器發(fā)送到了:{0}", SEND_MESSAGE);
// 向主機(jī)發(fā)送數(shù)據(jù).
// s.Send(sendBytes, sendBytes.Length, SocketFlags.None);
// 接收服務(wù)器的應(yīng)答.
Int32 bytes = s.Receive(recvBytes, recvBytes.Length, SocketFlags.None);
StringBuilder buff = new StringBuilder();
// while (bytes 0)
// {
// 將緩沖的字節(jié)數(shù)組,裝換為字符串.
// 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);
// 再次接受,看看后面還有沒(méi)有數(shù)據(jù).
//bytes = s.Receive(recvBytes, recvBytes.Length, SocketFlags.None);
// }
textBox1.Text = iCount.ToString();
}
catch (Exception ex)
{
MessageBox.Show("連接/發(fā)送/接收過(guò)程中,發(fā)生了錯(cuò)誤!");
MessageBox.Show(ex.Message);
//Console.WriteLine("連接/發(fā)送/接收過(guò)程中,發(fā)生了錯(cuò)誤!");
//Console.WriteLine(ex.Message);
//Console.WriteLine(ex.StackTrace);
}
finally
{
s.Close();
}
對(duì)于json,PHP有對(duì)應(yīng)的方法進(jìn)行操作。
一般而言,json會(huì)以字符串形式傳給PHP腳本,一般都是放在$_POST里面,
14
?php
// 接收
$json_parameter = $_POST['json_str'];
// 處理, 變成數(shù)組
$array = json_decode($json_parameter);
// PHP 把數(shù)組數(shù)據(jù)變成json格式字符串,發(fā)給頁(yè)面
$demo = array(
'key' = 'value',
'key2' = 'value2'
);
$demo_json = json_encode($demo); // 格式是{"key":"value","key2":"value2"}
echo $demo_json;