php发送xml数据 php处理xml( 二 )


如何在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 (bytes0)
//{
// 将缓冲的字节数组,装换为字符串.
//String str = ASCII.GetString(recvBytes, 0, bytes);
String str = "";
for (int i = 0; irecvBytes.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生成和获取XML格式数据 在做数据接口时 我们通常要获取第三方数据接口或者给第三方提供数据接口 而这些数据格式通常是以XML或者JSON格式传输 本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的XML数据
生成XML格式数据
我们假设系统中有一张学生信息表student 需要提供给第三方调用 并有id name sex age分别记录学生的姓名 性别 年龄等信息
CREATE TABLE `student` (
`id` int( ) NOT NULL auto_increment
`name` varchar( ) NOT NULL
`sex` varchar( ) NOT NULL
`age` *** allint( ) NOT NULL default
PRIMARY KEY(`id`)
) ENGINE=MyISAMDEFAULT CHARSET=utf ;
首先 建立createXML php文件 先连接数据库 获取数据
include_once ( connect php ) //连接数据库
$sql = select * from student ;
$result = mysql_query($sql) or die( Invalid query: mysql_error())

推荐阅读