public void NotifySetTcpSocketSaeaSession(TcpSocketSaeaClient _session) { ClientSession = _session; TcpIpEventArgs arg = new TcpIpEventArgs(0, 0, null); onTcpIpConnected(arg); }
public async void ConnectWMSServer() { _clientConfig = new TcpSocketSaeaClientConfiguration { FrameBuilder = new LengthPrefixedFrameSlimSlimBuilder() }; _clientDispatcher = new ClientEventDispatcher(); _clientDispatcher.ClientStartedEvent += new ClientEventDispatcher.OnServerStartedEventHandler(OnClientStarted); _clientDispatcher.ClientDataReceivedEvent += new ClientEventDispatcher.OnServerDataReceivedEventHandler(OnClientDataReceived); _clientDispatcher.ClientClosedEvent += new ClientEventDispatcher.OnServerClosedEventHandler(OnClientClosed); //the actual debugging //private IPEndPoint serverPoint = new IPEndPoint(IPAddress.Parse("192.168.6.3"), 2002); //private IPEndPoint localPoint = new IPEndPoint(IPAddress.Parse("192.168.6.100"), 3000); //the test debugging var serverPoint = new IPEndPoint(IPAddress.Parse("192.168.0.20"), 2002); var localPoint = new IPEndPoint(IPAddress.Parse("192.168.0.20"), 3005); try { if (_client != null) { _client.Dispose(); } _client = new TcpSocketSaeaClient(serverPoint, localPoint, _clientDispatcher, _clientConfig); await _client.Connect(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }
/// <summary> /// 创建客户端。 /// </summary> /// <param name="endPoint">终结点。</param> /// <returns>传输客户端实例。</returns> public ITransportClient CreateClient(EndPoint endPoint) { var key = endPoint.ToString(); return(_clients.GetOrAdd(key, k => new Lazy <ITransportClient>(() => { var messageListener = new MessageListener(); Func <TcpSocketSaeaClient> clientFactory = () => { var client = new TcpSocketSaeaClient((IPEndPoint)endPoint, async(c, data, offset, count) => { if (_logger.IsEnabled(LogLevel.Information)) { _logger.LogInformation("接收到数据包。"); } var transportMessageDecoder = _transportMessageCodecFactory.GetDecoder(); var transportMessageEncoder = _transportMessageCodecFactory.GetEncoder(); var message = transportMessageDecoder.Decode(data.Skip(offset).Take(count).ToArray()); if (_logger.IsEnabled(LogLevel.Information)) { _logger.LogInformation("接收到消息:" + message.Id); } await messageListener.OnReceived(new SimpleClientMessageSender(transportMessageEncoder, c), message); }); client.Connect().Wait(); return client; }; return new TransportClient(new SimpleClientMessageSender(_transportMessageCodecFactory.GetEncoder(), clientFactory), messageListener, _logger, _serviceExecutor); })).Value); }
public Task OnServerConnected(TcpSocketSaeaClient client) { #if NET return(Task.FromResult(1)); #else return(Task.CompletedTask); #endif }
public async Task OnServerDataReceived(TcpSocketSaeaClient client, byte[] data, int offset, int count) { var text = Encoding.UTF8.GetString(data, offset, count); Console.Write(string.Format("Server : {0} --> ", client.RemoteEndPoint)); Console.WriteLine(string.Format("{0}", text)); await Task.CompletedTask; }
public async void NotifyCloseTcpSocketSaeaSession(TcpSocketSaeaClient _session) { await ClientSession.Close(); ClientSession = null; TcpIpEventArgs arg = new TcpIpEventArgs(0, 0, null); onTcpIpDisconnected(arg); }
public ClientDataReceivedEventArgs(TcpSocketSaeaClient client, byte[] bytesData, int offSet, int count) { _dataBytes = new byte[count]; for (int i = 0; i < count; i++) { _dataBytes[i] = bytesData[offSet + i]; } _client = client; }
static void Main(string[] args) { NLogLogger.Use(); try { var config = new TcpSocketSaeaClientConfiguration(); IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 22222); _client = new TcpSocketSaeaClient(remoteEP, new SimpleMessageDispatcher(), config); _client.Connect().Wait(); Console.WriteLine("TCP client has connected to server [{0}].", remoteEP); Console.WriteLine("Type something to send to server..."); while (true) { try { string text = Console.ReadLine(); if (text == "quit") { break; } Task.Run(async() => { await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1}].", _client.LocalEndPoint, text); }); } catch (Exception ex) { Console.WriteLine(ex.Message); } } _client.Close().Wait(); Console.WriteLine("TCP client has disconnected from server [{0}].", remoteEP); } catch (Exception ex) { Logger.Get <Program>().Error(ex.Message, ex); } Console.ReadKey(); }
/// <summary> /// 创建客户端。 /// </summary> /// <param name="endPoint">终结点。</param> /// <returns>传输客户端实例。</returns> public ITransportClient CreateClient(EndPoint endPoint) { var config = new TcpSocketSaeaClientConfiguration(); var key = endPoint.ToString(); return(_clients.GetOrAdd(key, k => new Lazy <ITransportClient>(() => { var messageListener = new MessageListener(); Func <TcpSocketSaeaClient> clientFactory = () => { var client = new TcpSocketSaeaClient((IPEndPoint)endPoint, new SimpleMessageDispatcher(messageListener, _transportMessageCodecFactory, _logger), config); client.Connect().Wait(); return client; }; return new TransportClient(new SimpleClientMessageSender(_transportMessageCodecFactory.GetEncoder(), clientFactory), messageListener, _logger, _serviceExecutor); })).Value); }
static void Main(string[] args) { NLogLogger.Use(); try { var config = new TcpSocketSaeaClientConfiguration(); IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 22222); _client = new TcpSocketSaeaClient(remoteEP, new SimpleMessageDispatcher(), config); _client.Connect().Wait(); Console.WriteLine("TCP client has connected to server [{0}].", remoteEP); Console.WriteLine("Type something to send to server..."); while (true) { try { string text = Console.ReadLine(); if (text == "quit") break; Task.Run(async () => { await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1}].", _client.LocalEndPoint, text); }); } catch (Exception ex) { Console.WriteLine(ex.Message); } } _client.Close().Wait(); Console.WriteLine("TCP client has disconnected from server [{0}].", remoteEP); } catch (Exception ex) { Logger.Get<Program>().Error(ex.Message, ex); } Console.ReadKey(); }
public async Task OnServerDataReceived(TcpSocketSaeaClient client, byte[] data, int offset, int count) { if (_logger.IsEnabled(LogLevel.Information)) { _logger.LogInformation("接收到数据包。"); } var message = _transportMessageDecoder.Decode(data.Skip(offset).Take(count).ToArray()); if (_logger.IsEnabled(LogLevel.Information)) { _logger.LogInformation("接收到消息:" + message.Id); } _messageListener.OnReceived(new SimpleClientMessageSender(_transportMessageEncoder, client), message); #if NET await Task.FromResult(1); #else await Task.CompletedTask; #endif }
public async Task OnServerDisconnected(TcpSocketSaeaClient client) { ClientClosedEvent(this, client); await Task.CompletedTask; }
public async Task OnServerDataReceived(TcpSocketSaeaClient client, byte[] data, int offset, int count) { ClientDataReceivedEvent(this, new ClientDataReceivedEventArgs(client, data, offset, count)); await Task.CompletedTask; }
private void OnClientStarted(object sender, TcpSocketSaeaClient e) { MessageBox.Show("start"); }
private void OnClientClosed(object sender, TcpSocketSaeaClient session) { MessageBox.Show("end"); }
public async Task OnServerConnected(TcpSocketSaeaClient client) { Console.WriteLine(string.Format("TCP server {0} has connected.", client.RemoteEndPoint)); await Task.CompletedTask; }
static void Main(string[] args) { NLogLogger.Use(); try { var config = new TcpSocketSaeaClientConfiguration(); //config.FrameBuilder = new FixedLengthFrameBuilder(20000); //config.FrameBuilder = new RawBufferFrameBuilder(); //config.FrameBuilder = new LineBasedFrameBuilder(); //config.FrameBuilder = new LengthPrefixedFrameBuilder(); //config.FrameBuilder = new LengthFieldBasedFrameBuilder(); IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 22222); _client = new TcpSocketSaeaClient(remoteEP, new SimpleEventDispatcher(), config); _client.Connect().Wait(); Console.WriteLine("TCP client has connected to server [{0}].", remoteEP); Console.WriteLine("Type something to send to server..."); while (true) { try { string text = Console.ReadLine(); if (text == "quit") { break; } Task.Run(async() => { if (text == "many") { text = new string('x', 8192); for (int i = 0; i < 1000000; i++) { await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1}].", _client.LocalEndPoint, text); } } else if (text == "big1k") { text = new string('x', 1024 * 1); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big10k") { text = new string('x', 1024 * 10); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big100k") { text = new string('x', 1024 * 100); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big1m") { text = new string('x', 1024 * 1024 * 1); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big10m") { text = new string('x', 1024 * 1024 * 10); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big100m") { text = new string('x', 1024 * 1024 * 100); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else if (text == "big1g") { text = new string('x', 1024 * 1024 * 1024); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } else { await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1} Bytes].", _client.LocalEndPoint, text.Length); } }); } catch (Exception ex) { Logger.Get <Program>().Error(ex.Message, ex); } } _client.Shutdown(); Console.WriteLine("TCP client has disconnected from server [{0}].", remoteEP); } catch (Exception ex) { Logger.Get <Program>().Error(ex.Message, ex); } Console.ReadKey(); }
static void Main(string[] args) { NLogLogger.Use(); try { var config = new TcpSocketSaeaClientConfiguration(); //config.FrameBuilder = new FixedLengthFrameBuilder(20000); //config.FrameBuilder = new RawBufferFrameBuilder(); //config.FrameBuilder = new LineBasedFrameBuilder(); //config.FrameBuilder = new LengthPrefixedFrameBuilder(); //config.FrameBuilder = new LengthFieldBasedFrameBuilder(); IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 22222); _client = new TcpSocketSaeaClient(remoteEP, new SimpleMessageDispatcher(), config); _client.Connect().Wait(); Console.WriteLine("TCP client has connected to server [{0}].", remoteEP); Console.WriteLine("Type something to send to server..."); while (true) { try { string text = Console.ReadLine(); if (text == "quit") break; Task.Run(async () => { if (text == "many") { text = new string('x', 8192); for (int i = 0; i < 1000000; i++) { await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1}].", _client.LocalEndPoint, text); } } else if (text == "big") { text = new string('x', 1024 * 1024 * 100); await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1}].", _client.LocalEndPoint, text); } else { await _client.SendAsync(Encoding.UTF8.GetBytes(text)); Console.WriteLine("Client [{0}] send text -> [{1}].", _client.LocalEndPoint, text); } }); } catch (Exception ex) { Logger.Get<Program>().Error(ex.Message, ex); } } _client.Close().Wait(); Console.WriteLine("TCP client has disconnected from server [{0}].", remoteEP); } catch (Exception ex) { Logger.Get<Program>().Error(ex.Message, ex); } Console.ReadKey(); }
public SimpleClientMessageSender(ITransportMessageEncoder transportMessageEncoder, TcpSocketSaeaClient client) : base(transportMessageEncoder) { _client = client; }