diff options
author | chai <chaifix@163.com> | 2021-05-10 18:00:02 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-05-10 18:00:02 +0800 |
commit | ae90ac282a4c16eaf1dc451fb130aa9d6bf14f64 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /NetWork | |
parent | 35f6e8e5f09d3805679894e1585f8be8892d8edb (diff) |
-remove
Diffstat (limited to 'NetWork')
-rw-r--r-- | NetWork/AsynClient.cs | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/NetWork/AsynClient.cs b/NetWork/AsynClient.cs deleted file mode 100644 index 20efcc7..0000000 --- a/NetWork/AsynClient.cs +++ /dev/null @@ -1,250 +0,0 @@ -using System; -using System.Net; -using System.Net.Sockets; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading; - -/* -public class Messageinfo -{ - public MsgHeader header; // 消息头 - public byte[] databuffer; // 数据本体 -} - -*/ - -namespace Assets.Scripts.NetWork -{ - // 发送出去的data buffer - public class SendBufferInfo - { - public UInt32 seqId; - public byte[] buffer; - public int length; - } - - public class AsynClient - { - public const int BufferSzie = 65500; - private byte[] socketCacheBuffer = new byte[BufferSzie]; - - private int mPort; - private string mServerAddress; - - private volatile Socket mClient = null; - private volatile bool isConnectionEstablished = false; - // thread lock - private volatile object lockThis = new object(); - - //private vp_Timer.Handle timerHandle = new vp_Timer.Handle(); - - private const int SendReceiveTimeOut = 3000; - - public delegate void OnCoonectCallBack(); - public delegate void OnConnectFail(Exception e); - public delegate void OnDisconnectCallBack(); - public delegate void OnSendCallBack(SendBufferInfo bufferInfo, bool isCompleted); - public delegate void OnReceiveCallBack(byte[] buffer, int length); - - public OnCoonectCallBack connectCallBack = null; - public OnConnectFail connectFailCallBack = null; - public OnDisconnectCallBack disConnectCallBack = null; - public OnSendCallBack sendCallBack = null; - public OnReceiveCallBack receiveCallBack = null; - - // socket - public void StartClient(int port, string serverAddress, int timeOutMS) - { - lock(lockThis) - { - mPort = port; - mServerAddress = serverAddress; - - try - { - IPAddress[] ipAddresses = Dns.GetHostAddresses(mServerAddress); - if(ipAddresses.Length == 0) - { - return; - } - IPAddress ipAddress = ipAddresses[0]; - IPEndPoint remoteEndPoint = new IPEndPoint(ipAddress, mPort); - - mClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - mClient.BeginConnect(remoteEndPoint, new AsyncCallback(ConnectCallback), null); - - // - } - catch(Exception e) - { - CloseClient(); - } - } - } - - private void CloseClient() - { - try - { - if(!isConnectionEstablished) - { - - mClient.Close(); - mClient = null; - if (disConnectCallBack != null) - disConnectCallBack(); - return; - } - isConnectionEstablished = false; - if (mClient != null) - mClient.Shutdown(SocketShutdown.Both); - if(mClient != null) - { - mClient.Close(); - mClient = null; - } - if (disConnectCallBack != null) - disConnectCallBack(); - } - catch(Exception e) - { - if (disConnectCallBack != null) - disConnectCallBack(); - } - } - - // 用来设置连接超时 - private void timer_connection_tick() - { - //lock (lockThis) - //{ - // if(null == mClient || !mClient.Connected) - // { - // timerHandler.Cancel(); - // if (null != mCLient) - // CloseClient(); - // } - //} - } - - private void ConnectCallback(IAsyncResult ar) - { - lock (lockThis) - { - try - { - if(null != mClient && null != ar) - { - mClient.EndConnect(ar); - mClient.ReceiveTimeout = SendReceiveTimeOut; - mClient.SendTimeout = SendReceiveTimeOut; - - isConnectionEstablished = true; - - if (connectCallBack != null) - connectCallBack(); - - // 接收线程 - Thread receiveThread = new Thread(new ThreadStart(AsyncRecive)); - receiveThread.Start(); - } - else - { - } - } - catch(Exception e) - { - if (connectFailCallBack != null) - connectFailCallBack(e); - CloseClient(); - } - } - } - - private void AsyncRecive() - { - try - { - while (true) - { - lock (lockThis) - { - if (!isConnectionEstablished) - break; - if (null == mClient || !mClient.Connected) - break; - if (mClient.Available > 0) - { - int bytesRead = mClient.Receive(socketCacheBuffer, 0, socketCacheBuffer.Length, SocketFlags.None); - if (bytesRead > 0) - { - if (receiveCallBack != null) - { - receiveCallBack(socketCacheBuffer, bytesRead); - } - else - { - } - } - else - { - // 服务器主动断线 - CloseClient(); - break; - } - } - } - Thread.Sleep(10); - } - } - catch(Exception e) - { - - } - } - - public void Send(SendBufferInfo sendBuffer) - { - lock (lockThis) - { - if(sendBuffer.length <= 0 || sendBuffer.length > sendBuffer.buffer.Length) - { - sendCallBack(sendBuffer, true); - return; - } - - try - { - if(!isConnectionEstablished) - { - sendCallBack(sendBuffer, false); - return; - } - - //NetWorkData.totalSendBytes += sendBuffer.length; // 统计发送的字节 - mClient.Send(sendBuffer.buffer, 0, sendBuffer.length, SocketFlags.None); - sendCallBack(sendBuffer, true); - - } - catch(Exception e) - { - sendCallBack(sendBuffer, false); - CloseClient(); - } - } - } - - public void CloseNetWorkConnect() - { - lock (lockThis) - { - CloseClient(); - } - } - - - } -} - |