93 lines
2.3 KiB
C#
93 lines
2.3 KiB
C#
/********************************************************************************
|
||
* 文件名:Socket.cs
|
||
* 全路径: \NetWork\SocketAPI\Socket.cs
|
||
* 创建人: 王华
|
||
* 创建时间:2013-11-29
|
||
*
|
||
* 功能说明: Socket类
|
||
*
|
||
* 修改记录:
|
||
*********************************************************************************/
|
||
|
||
#if UNITY_WP8
|
||
using UnityPortSocket;
|
||
#else
|
||
using System.Net.Sockets;
|
||
#endif
|
||
using System.Net;
|
||
using SPacket.Socket_API;
|
||
|
||
namespace SPacket.SocketInstance
|
||
{
|
||
public class SocketInstance
|
||
{
|
||
private string m_host;
|
||
private int m_port;
|
||
|
||
private Socket m_SocketID;
|
||
|
||
public bool IsValid
|
||
{
|
||
get { return m_SocketID != null; }
|
||
}
|
||
|
||
public bool IsConnected
|
||
{
|
||
get { return m_SocketID != null && m_SocketID.Connected; }
|
||
}
|
||
|
||
public uint Send(byte[] buf, int nLen, SocketFlags flags = SocketFlags.None)
|
||
{
|
||
return SocketAPI.Send(m_SocketID, buf, (uint) nLen, flags);
|
||
}
|
||
|
||
public uint receive(byte[] buf, int nLen, uint flags = 0)
|
||
{
|
||
return SocketAPI.Recv(m_SocketID, buf, (uint) nLen, flags);
|
||
}
|
||
|
||
public void close()
|
||
{
|
||
if (IsValid)
|
||
{
|
||
SocketAPI.Close(m_SocketID);
|
||
m_SocketID = null;
|
||
}
|
||
}
|
||
|
||
public EndPoint GetLocalEndPoint()
|
||
{
|
||
return m_SocketID == null ? null : m_SocketID.LocalEndPoint;
|
||
}
|
||
|
||
public uint available()
|
||
{
|
||
return SocketAPI.available(m_SocketID);
|
||
}
|
||
|
||
public string connect(string IP, int port)
|
||
{
|
||
m_host = IP;
|
||
m_port = port;
|
||
var results = "";
|
||
m_SocketID = SocketAPI.Connect(m_host, m_port, ref results);
|
||
return results;
|
||
}
|
||
|
||
public bool IsCanSend()
|
||
{
|
||
if (m_SocketID != null)
|
||
if (m_SocketID.Poll(0, SelectMode.SelectWrite))
|
||
return true;
|
||
return false;
|
||
}
|
||
|
||
public bool IsCanReceive()
|
||
{
|
||
if (m_SocketID != null)
|
||
if (m_SocketID.Poll(0, SelectMode.SelectRead))
|
||
return true;
|
||
return false;
|
||
}
|
||
}
|
||
} |