Example #1
0
        // addressinfo => TcpClient.Client.RemoteEndPoint
        // 새로운 연결이 들어왔습니다.
        public void OnRegisterSocket(AsyncSocketContext sockdesc, string addressinfo)
        {
            //TODO Console.WriteLine은 모두 NLog로 바꾸기
            Console.WriteLine(sockdesc.ManagedID + " Connected");

            lock (this)
            {
                theSessions.Add(sockdesc.ManagedID, sockdesc);
            }
        }
Example #2
0
        // 소켓연결이 해제되었습니다.
        public void OnReleaseSocket(AsyncSocketContext sockdesc, AsyncSocket socket)
        {
            Console.WriteLine(sockdesc.ManagedID + " Disconnected");

            lock (this)
            {
                theSessions.Remove(sockdesc.ManagedID);
            }

            sockdesc.NetSender.ReleaseAsyncSocketContext(sockdesc);
        }
Example #3
0
        public void OnReceiveData(AsyncSocketContext sockdesc, int length, byte[] data, int offset)
        {
            byte[] buffer = new byte[length];
            Array.Copy(data, offset, buffer, 0, length);

            if ('q' == buffer[0])
            {
                sockdesc.NetSender.DisconnectSocket(sockdesc);
            }
            else
            {
                sockdesc.NetSender.PostingSend(sockdesc, buffer.Length, buffer);
            }
        }
Example #4
0
 // connectSocket에 대한 결과
 //  bSuccess가 false이면 ex가 null이 아닌 개체로 전송됩니다~
 public void OnConnectingResult(int requestID, AsyncSocketContext sockdesc, bool bSuccess, Exception ex)
 {
 }