72 lines
2.0 KiB
C#
72 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Net.Sockets;
|
|
|
|
namespace SafeMobileLib_MySql
|
|
{
|
|
public class SMnetwork
|
|
{
|
|
/* NetworkStream that will be used */
|
|
private NetworkStream m_stream;
|
|
/* TcpClient that will connect for us */
|
|
private TcpClient m_client;
|
|
/* Storage space */
|
|
private byte[] m_buffer;
|
|
|
|
public string m_server;
|
|
public int m_port;
|
|
public SMnetwork(string p_server, int p_port)
|
|
{
|
|
m_server = p_server;
|
|
m_port = p_port;
|
|
}
|
|
|
|
~SMnetwork()
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
public void Connect()
|
|
{
|
|
m_client = new TcpClient(m_server, m_port);
|
|
/* Store the NetworkStream */
|
|
m_stream = m_client.GetStream();
|
|
/* Create data buffer */
|
|
m_buffer = new byte[m_client.ReceiveBufferSize];
|
|
}
|
|
|
|
public string Read()
|
|
{
|
|
/* Reading data from socket (stores the length of data) */
|
|
int lData = m_stream.Read(m_buffer, 0, m_client.ReceiveBufferSize);
|
|
/* String conversion (to be displayed on console) */
|
|
return Encoding.ASCII.GetString(m_buffer, 0, lData);
|
|
}
|
|
|
|
public void Write(string p_data)
|
|
{
|
|
/* Sending the data */
|
|
m_stream.Write(Encoding.ASCII.GetBytes(p_data.ToCharArray()), 0, p_data.Length);
|
|
}
|
|
|
|
public void WriteWithSize(string p_data)
|
|
{
|
|
char[] buf = new char[600];
|
|
buf[1] = (char)(p_data.Length & 0x00ff);
|
|
buf[0] = (char)((p_data.Length & 0xff00)>>8);
|
|
char[] tmp = p_data.ToCharArray();
|
|
for (int i = 0; i < p_data.Length; i++)
|
|
buf[i + 2] = tmp[i];
|
|
/* Sending the data */
|
|
m_stream.Write(Encoding.ASCII.GetBytes(buf), 0, p_data.Length+2);
|
|
}
|
|
|
|
public void Close()
|
|
{
|
|
m_client.Close();
|
|
}
|
|
|
|
}
|
|
}
|