You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.6 KiB
C#
86 lines
2.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace demo.ExternalDevices
|
|
{
|
|
class SktPacket
|
|
{
|
|
private static SktPacket m_instance = new SktPacket();
|
|
/// <summary>
|
|
/// 单件类访问接口
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static SktPacket Instance
|
|
{
|
|
get { return m_instance; }
|
|
private set { m_instance = value; }
|
|
}
|
|
|
|
public static bool InitSocket()
|
|
{
|
|
return 0 == skt.skt_init() ? true : false;
|
|
}
|
|
|
|
public static bool SktConnect(int sktHandle)
|
|
{
|
|
return 0 == skt.skt_conn(sktHandle) ? true : false;
|
|
}
|
|
|
|
public static bool SktDisConnect(int sktHandle)
|
|
{
|
|
return 0 == skt.skt_disconn(sktHandle) ? true : false;
|
|
}
|
|
|
|
public static bool SktClose(int sktHandle)
|
|
{
|
|
return 0 == skt.skt_close(sktHandle) ? true : false;
|
|
}
|
|
|
|
public static bool CreateClient(string ip ,ushort port, ref int sktHandle)
|
|
{
|
|
sktHandle = skt.create_c(ip, port);
|
|
return (int)EMSocketStatus.SOCKET_CONNECTED == skt.skt_status(sktHandle) ? true : false;
|
|
}
|
|
|
|
public static bool CreateServer(string ip, ushort port, ref int sktHandle)
|
|
{
|
|
sktHandle = skt.create_s(ip, port);
|
|
return (int)EMSocketStatus.SOCKET_DISCONNECTED == sktHandle ? false : true;
|
|
}
|
|
|
|
public static bool SendMsg(int sktHandle, string msg)
|
|
{
|
|
if ((int)EMSocketStatus.SOCKET_CONNECTED != skt.skt_status(sktHandle))
|
|
{
|
|
return false;
|
|
}
|
|
int ret = skt.skt_send(sktHandle, msg, msg.Length);
|
|
return ret == msg.Length ? true : false;
|
|
}
|
|
|
|
public static bool SendMsg(int sktHandle, byte[] cmd)
|
|
{
|
|
if ((int)EMSocketStatus.SOCKET_CONNECTED != skt.skt_status(sktHandle))
|
|
{
|
|
return false;
|
|
}
|
|
string msg = Encoding.UTF8.GetString(cmd);
|
|
return msg.Length == skt.skt_send(sktHandle, msg, msg.Length) ? true : false;
|
|
}
|
|
|
|
public static bool RecvMsg(int sktHandle, ref string msg, uint timeout = 0xFFFFFFFF)
|
|
{
|
|
if ((int)EMSocketStatus.SOCKET_CONNECTED != skt.skt_status(sktHandle))
|
|
{
|
|
return false;
|
|
}
|
|
StringBuilder sb = new StringBuilder(256);
|
|
int ret = skt.skt_recv(sktHandle, sb, 256, timeout);
|
|
string recvMsg = sb.ToString();
|
|
return ret == recvMsg.Length ? true : false;
|
|
}
|
|
}
|
|
}
|