// 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); } }
// 소켓연결이 해제되었습니다. public void OnReleaseSocket(AsyncSocketContext sockdesc, AsyncSocket socket) { Console.WriteLine(sockdesc.ManagedID + " Disconnected"); lock (this) { theSessions.Remove(sockdesc.ManagedID); } sockdesc.NetSender.ReleaseAsyncSocketContext(sockdesc); }
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); } }
// connectSocket에 대한 결과 // bSuccess가 false이면 ex가 null이 아닌 개체로 전송됩니다~ public void OnConnectingResult(int requestID, AsyncSocketContext sockdesc, bool bSuccess, Exception ex) { }