private delegate void UsetEventHandler();
private static Socket _serveSocket = null;
private static Thread _listthread = null;
private static Socket _socket=null;
private static Thread _receiveThread = null;
#region 开启
public static void IpMonitor(string ip,string port)
{
IPAddress _ip = IPAddress.Parse(ip);
_serveSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
_serveSocket.Bind(new IPEndPoint(_ip, Convert.ToInt32(port)));
_serveSocket.Listen(10);
_listthread = new Thread(new ThreadStart(ListenClientConnect));
_listthread.IsBackground = true;
_listthread.Start();
}
catch
{
}
}
#endregion
#region 监听到客户端的连接
/// <summary>
/// 监听到客户端的连接
/// </summary>
public static void ListenClientConnect()
{
while (true)
{
//监听到客户端的连接,获取双方通信socket
_socket = _serveSocket.Accept();
//创建线程循环接收客户端发送的数据
_receiveThread = new Thread(Receive);
//传入双方通信socket
_receiveThread.Start(_socket);
}
}
#endregion
#region 接收客户端数据
/// <summary>
/// 接收客户端数据
/// </summary>
/// <param name="socket"></param>
public static void Receive(object socket)
{
try
{
Socket myClientSocket = (Socket)socket;
while (true)
{
byte[] buff = new byte[1024 * 1024 * 1024];
//int r = myClientSocket.Receive(buff);
Encoding.Default.GetString(buff, 0, myClientSocket.Receive(buff));
}
}
catch
{
Console.WriteLine("接收数据失败", "TCP/IP服务端提示");
}
}
#endregion
#region 发送数据
public static void sendData(string data) {
try
{
byte[] buffer = new byte[1024 * 1024 * 1024];
buffer = Encoding.Default.GetBytes(data);
_socket.Send(buffer);
}
catch
{
Console.WriteLine("发送数据失败");
}
}
#endregion