Cómo enviar paquetes usando socket XML en PHP
Recibir paquetes de datos de la IP especificada. Se deben filtrar otras IP, así que use un firewall.
El segmento de cliente se usa para obtener los datos. Puede especificar la IP usando el. client., el código es aproximadamente el siguiente
public void SendMessage()
{
ASCII = Encoding.ASCII;
/ / Construido para enviar un búfer de bytes.
Byte[] sendBytes = ASCII.GetBytes(SEND_MESSAGE);
// Construir un búfer de bytes para la recepción.
Byte [] recvBytes = nuevo Byte[256];
// dirección IP.
IPAddress localAddr = IPAddress.Parse("192.168.19.81");
// Punto de acceso.
IPEndPoint ephost = new IPEndPoint(localAddr, PORT);
//Primer parámetro: AddressFamily = Especifica el direccionamiento que las instancias de la clase Socket pueden usar plan.
// Sin especificar La familia de direcciones no está especificada.
// Dirección IP de InterNetwork versión 4.
// Dirección IP InterNetworkV6 versión 6.
//
// Segundo parámetro: SocketType = Especifica el tipo de socket representado por una instancia de la clase Socket.
// Stream Un tipo de socket que admite transmisión de bytes confiable, bidireccional y basada en conexión sin duplicar datos ni preservar límites.
// Este tipo de Socket se comunica con un único host par y es necesario establecer una conexión de host remoto antes de que pueda comenzar la comunicación.
// Este tipo de socket utiliza el Protocolo de control de transmisión (Tcp), AddressFamily puede ser InterNetwork o InterNetworkV6.
//
// El tercer parámetro: ProtocolType = especifica el protocolo admitido por la clase Socket.
// Protocolo de control de transmisión TCP (TCP).
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp
prueba
{
/ / Intenta conectarte al host.
s.Connect(ephost);
//Console.WriteLine("Enviado al servidor: {0}", SEND_MESSAGE);
//Enviar datos al host.
// s.Send(sendBytes, sendBytes.Length, SocketFlags.None);
//Recibir los datos del servidor. respuesta.
p>Int32 bytes = s.Receive(recvBytes, recvBytes.Length, SocketFlags.None);
StringBuilder buff = new StringBuilder();
// while (bytes gt; 0)
// {
// Convierte la matriz de bytes almacenada en el búfer en una cadena.
// String str = ASCII.GetString(recvBytes, 0, bytes);
String str = "";
for (int i = 0; i lt; recvBytes.Length; i )
{
str = str recvBytes[i];
}
int iCount = 0
iCount = int; .Parse (str.Substring(13, 6));
//Agregar caché de cadena
buff.Append(str);
//Aceptar nuevamente , Vea si hay algún dato más tarde.
//bytes = s.Receive(recvBytes, recvBytes.Length, SocketFlags.None);
// }
textBox1.Text = iCount.ToString();
}
catch (Excepción ex)
{
Mensaje
eBox.Show("¡Se produjo un error durante la conexión/envío/recepción!");
MessageBox.Show(ex.Message);
//Console.WriteLine(" Un error); ocurrió durante la conexión/envío/recepción ");
//Console.WriteLine(ex.Message);
//Console.WriteLine(ex.StackTrace);
}
finalmente
{
s.Close();
}