public MyClientTcpSocket(Func <string> getHostPort, TimeSpan reconnectTimeOut, int sendBufferSize = 1024 * 1024) { Logs = new SocketLog <MyClientTcpSocket <TSocketData> >(this); _log = Logs; _getHostPort = getHostPort; _reconnectTimeOut = reconnectTimeOut; SetPingInterval(TimeSpan.FromSeconds(3)); _deliveryBuffer = new byte[sendBufferSize]; }
public MyServerTcpSocket(IPEndPoint ipEndPoint, int sendBufferSize = 1024 *1024) { if (sendBufferSize < 1024) { throw new Exception("Buffer size must be more then 1024. Now size:" + sendBufferSize); } _ipEndPoint = ipEndPoint; _sendBufferSize = sendBufferSize; _connections = new Connections <TSocketData>(); Logs = new SocketLog <MyServerTcpSocket <TSocketData> >(this); _log = Logs; }
internal ValueTask StartAsync(TcpClient tcpClient, ITcpSerializer <TSocketData> tcpSerializer, object lockObject, ISocketLogInvoker log, Action <ITcpContext> disconnectedCallback, byte[] deliveryBuffer) { Log = log; _disconnectedCallback = disconnectedCallback; _lockObject = lockObject; _deliveryBuffer = deliveryBuffer; _deliveryPublisherSubscriber = new TcpSocketPublisherSubscriber(_lockObject); TcpClient = tcpClient; SocketStream = TcpClient.GetStream(); TcpSerializer = tcpSerializer; SetContextName(TcpClient.Client.RemoteEndPoint.ToString()); Connected = true; SocketStatistic = new SocketStatistic(); return(OnConnectAsync()); }