/// <summary> /// Creates a new TcpCommunicationChannel object. /// </summary> /// <param name="clientSocket">A connected Socket object that is /// used to communicate over network</param> public TcpCommunicationChannel(Socket clientSocket) { _clientSocket = clientSocket; _clientSocket.NoDelay = true; var ipEndPoint = (IPEndPoint)_clientSocket.RemoteEndPoint; _remoteEndPoint = new TcpEndPoint(ipEndPoint.Address.ToString(), ipEndPoint.Port); _buffer = new byte[ReceiveBufferSize]; _syncLock = new object(); }
public void TestMethod1() { Uri uri = new Uri("coap+tls://localhost:" + _serverPort.ToString() + "/hello"); CoapClient client = new CoapClient(uri); TcpEndPoint ep = new TcpEndPoint(); ep.Start(); client.EndPoint = ep; Response resp = client.Get(); Assert.AreEqual(resp.StatusCode, StatusCode.Content); }
private void CreateServer() { _server = new CoapServer(); TcpEndPoint endpoint = new TcpEndPoint(); _server.AddEndPoint(endpoint); _server.Add(new HelloWorldResource("hello")); _server.Start(); _serverPort = ((System.Net.IPEndPoint)endpoint.LocalEndPoint).Port; }
/// <summary> /// Creates a new TcpCommunicationChannel object. /// </summary> /// <param name="clientSocket"> /// A connected Socket object that is /// used to communicate over network /// </param> public TcpCommunicationChannel(Socket clientSocket) { WireProtocol = WireProtocolManager.GetWireProtocol("Binary"); _clientSocket = clientSocket; // @TODO: Enable support for partial data and nagle algorithm in JsonWireProtocol _clientSocket.NoDelay = false; var ipEndPoint = (IPEndPoint)_clientSocket.RemoteEndPoint; _remoteEndPoint = new TcpEndPoint(ipEndPoint.Address.ToString(), ipEndPoint.Port); _buffer = new byte[ReceiveBufferSize]; _syncLock = new object(); }
public ZeusServerBase(string address) { // Minimal address content validation if (string.IsNullOrEmpty(address)) { throw new ArgumentNullException("address"); } // Create end-point and server _endPoint = new TcpEndPoint(address); _server = ServerFactory.CreateServer(_endPoint); // Attach client events _server.ClientConnected += ServerOnClientConnected; _server.ClientDisconnected += ServerOnClientDisconnected; }
/// <summary> /// 构造函数 /// </summary> public TcpServer() { tcpEndPoint = new TcpEndPoint(); tcpRunningTimeInfo = new TcpRunningTimeInfo(); bllEntryPoint = new BllEntryPoint(); string strPort = ConfigurationManager.AppSettings["port"]; bool isSuccess = Int32.TryParse(strPort, out tcpEndPoint.port); if (!isSuccess) { LogHelper.WriteLogError("Tcp服务端错误:", "监听端口号设置错误"); } tcpEndPoint.localAddr = Dns.GetHostAddresses(Dns.GetHostName()); tcpEndPoint.ipAddress = new IPAddress(new byte[] { 127, 0, 0, 1 }); }
public Connection(TcpEndPoint endPoint, IPEndPoint address, Stream stream) { if (endPoint == null) { throw new ArgumentNullException(nameof(endPoint)); } if (address == null) { throw new ArgumentNullException(nameof(address)); } if (stream == null) { throw new ArgumentNullException(nameof(stream)); } _endPoint = endPoint; RemoteAddress = address; _stream = stream; _receiveProcess = new AsyncProcess(ReceiveProcedure, start: true); _disposeHelper = new AsyncDisposeHelper(DisposeInternalAsync, AsyncDisposeHelperOptions.Synchronize); }
public TcpServer(TcpEndPoint endPoint) { _endPoint = endPoint; }
public NetTcpTesterProxy(TcpEndPoint endpoint) : base(endpoint) { }
/// <summary> /// Creates a new TcpClient object. /// </summary> /// <param name="serverEndPoint">The endpoint address to connect to the server</param> public TcpClient(TcpEndPoint serverEndPoint) { _serverEndPoint = serverEndPoint; }
private static void RunTest(IPEndPoint ipEndpoint, string ip) { using (var client = new TcpClient <IValTypes>(ipEndpoint)) { decimal abc = client.Proxy.GetDecimal(4.5m); bool result = client.Proxy.OutDecimal(abc); } var tcpEndpoint = new TcpEndPoint(ipEndpoint, 80); //using (var client = new NetTcpTesterProxy(ipEndpoint)) using (var client = new NetTcpTesterProxy(tcpEndpoint)) { var id = client.GetId("test1", 3.314, 42, DateTime.Now); long q = 3; var response = client.Get(id, "mirror", 4.123, out q); var list = client.GetItems(id); var listFromAsync = client.GetItemsAsync(id).GetAwaiter().GetResult(); } using (var client = new NetTcpMyTesterProxy(ipEndpoint)) { var id = client.GetId("test1", 3.314, 42); int q2 = 4; var response = client.Get(id, "mirror", 4.123, out q2); var list = client.GetItems(id, new int[] { 3, 6, 9 }); } var sw = Stopwatch.StartNew(); var from = 0; var to = 200; Parallel.For(from, to, index => { using (var client = new NetTcpTesterProxy(ipEndpoint)) { for (int i = 0; i < 10; i++) { var id = client.GetId("test1", 3.314, 42, DateTime.Now); long q = 2; var response = client.Get(id, "mirror", 4.123, out q); var list = client.GetItems(id); var listFromAsync = client.GetItemsAsync(id).GetAwaiter().GetResult(); } } using (var client = new NetTcpMyTesterProxy(ipEndpoint)) { for (int i = 0; i < 10; i++) { var id = client.GetId("test1", 3.314, 42); int q2 = 6; var response = client.Get(id, "mirror", 4.123, out q2); var list = client.GetItems(id, new int[] { 3, 6, 9 }); } } }); sw.Stop(); var msperop = sw.ElapsedMilliseconds / 12000.0; Console.WriteLine("tcp: {0}, {1}", sw.ElapsedMilliseconds, msperop); if ("127.0.0.1" == ip) //only run np tests when testing locally { var pipeName = "ServiceWireTestHost"; using (var client = new NetNpTesterProxy(new NpEndPoint(pipeName))) { var id = client.GetId("test1", 3.314, 42, DateTime.Now); long q = 2; var response = client.Get(id, "mirror", 4.123, out q); var list = client.GetItems(id); var listFromAsync = client.GetItemsAsync(id).GetAwaiter().GetResult(); } sw = Stopwatch.StartNew(); Parallel.For(from, to, index => { using (var client = new NetNpTesterProxy(new NpEndPoint(pipeName))) { for (int i = 0; i < 10; i++) { var id = client.GetId("test1", 3.314, 42, DateTime.Now); long q = 4; var response = client.Get(id, "mirror", 4.123, out q); var list = client.GetItems(id); var listFromAsync = client.GetItemsAsync(id).GetAwaiter().GetResult(); long id1; long id2; long id3 = client.TestLong(out id1, out id2); } } using (var client = new NetNpMyTesterProxy(new NpEndPoint(pipeName))) { for (int i = 0; i < 10; i++) { var id = client.GetId("test1", 3.314, 42); int q2 = 4; var response = client.Get(id, "mirror", 4.123, out q2); var list = client.GetItems(id, new int[] { 3, 6, 9 }); } } }); sw.Stop(); msperop = sw.ElapsedMilliseconds / 12000.0; Console.WriteLine("pip: {0}, {1}", sw.ElapsedMilliseconds, msperop); Thread.Sleep(2000); } }
/// <summary> /// Creates a new TcpConnectionListener for given endpoint. /// </summary> /// <param name="endPoint">The endpoint address of the server to listen incoming connections</param> public TcpConnectionListener(TcpEndPoint endPoint) { _endPoint = endPoint; }
static CoapServer SetupServer(ICoapConfig config, EndPoint endPoint, int port, KeySet dtlsSignKeys, KeySet dtlsValidateKeys) { // // CoapServer server = new CoapServer(config, endPoint, port); DTLSEndPoint ep2 = new DTLSEndPoint(dtlsSignKeys, dtlsValidateKeys, port + 1); server.AddEndPoint(ep2); IResource root = new HelloWorldResource("hello", true); server.Add(root); IResource x = new OscoapTest("coap"); root.Add(x); x = new OscoapTest("1"); root.Add(x); root.Add(new OscoapTest("2")); root.Add(new OscoapTest("3")); root.Add(new OscoapTest("6")); root.Add(new OscoapTest("7")); server.Add(new OscoapTest("test")); server.Add(new TimeResource("observe")); server.Add(new LargeResource("LargeResource")); #if DEV_VERSION AceTest.Setup(server, "RS1"); #if false server.Add(new Com.AugustCellars.CoAP.EDHOC.EdhocResource(edhocKeys, edhocSign)); #endif // Setup the ACE resources string UseAsServer = "coaps://localhost:5689/token"; // UseAsServer = "coaps://31.133.142.90/token"; // UseAsServer = "coaps://31.133.134.176/token"; KeySet myDecryptKeySet = new KeySet(); OneKey key = new OneKey(); key.Add(CoseKeyKeys.KeyType, GeneralValues.KeyType_Octet); key.Add(CoseKeyParameterKeys.Octet_k, CBORObject.FromObject(new byte[] { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 })); key.Add(CoseKeyKeys.KeyIdentifier, CBORObject.FromObject(Encoding.UTF8.GetBytes("SERVER_KID"))); key.Add(CoseKeyKeys.Algorithm, AlgorithmValues.AES_CCM_64_128_128); myDecryptKeySet.AddKey(key); key = new OneKey(); key.Add(CoseKeyKeys.KeyType, GeneralValues.KeyType_Octet); key.Add(CoseKeyParameterKeys.Octet_k, CBORObject.FromObject(new byte[] { (byte)'a', (byte)'b', (byte)'c', 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 })); key.Add(CoseKeyKeys.KeyIdentifier, CBORObject.FromObject(new byte[] { 0x70, 0x63, 0x6F, 0x61, 0x70, 0x3A, 0x2F, 0x2F, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x68, 0x6F, 0x73, 0x74 })); key.Add(CoseKeyKeys.Algorithm, CBORObject.FromObject(5)); myDecryptKeySet.AddKey(key); AuthZ authZ = new AuthZ(myDecryptKeySet, null); server.Add(authZ); AceOAuthTest r = new AceOAuthTest("ace-echo", true, true, UseAsServer); r.AuthTokenProcessor = authZ; server.Add(r); OscoapContexts = SecurityContextSet.AllContexts; #endif // ep2.Add(new AceOAuthTest("ace/echo", true, true, null)); #if INCLUDE_RD ResourceDirectoryResource.CreateResources(server); #endif #if DEV_VERSION // server = new CoapServer(config); CoAPEndPoint tcp = new TcpEndPoint(port); tcp.Start(); server.AddEndPoint(tcp); // server.Add(new HelloWorldResource("hello", false)); // server.Add(new LargeResource("LargeResource")); server.Add(new LargeResource("ExtraLargeResource", 20 * 1024)); server.Add(new StorageResource("StorageHere")); server.Start(); // server = new CoapServer(config); tcp = new TLSEndPoint(dtlsSignKeys, dtlsValidateKeys, port + 1); tcp.Start(); server.AddEndPoint(tcp); AceTest.Setup(server, "RS2"); //server.Add(new HelloWorldResource("hello", false)); #endif server.Start(); return(server); }
public static void Main(String[] args) { String method = null; Uri uri = null; String payload = null; Boolean loop = false; Boolean byEvent = true; OneKey userKey = new OneKey(); userKey.Add(CoseKeyKeys.KeyType, COSE.GeneralValues.KeyType_Octet); userKey.Add(CoseKeyParameterKeys.Octet_k, CBORObject.FromObject(Encoding.UTF8.GetBytes("sesame"))); userKey.Add(CoseKeyKeys.KeyIdentifier, CBORObject.FromObject(Encoding.UTF8.GetBytes("password"))); if (args.Length == 0) { PrintUsage(); } Int32 index = 0; foreach (String arg in args) { if (arg[0] == '-') { if (arg.Equals("-l")) { loop = true; } if (arg.Equals("-e")) { byEvent = true; } else { Console.WriteLine("Unknown option: " + arg); } } else { switch (index) { case 0: method = arg.ToUpper(); break; case 1: try { uri = new Uri(arg); } catch (Exception ex) { Console.WriteLine("Failed parsing URI: " + ex.Message); Environment.Exit(1); } break; case 2: payload = arg; break; default: Console.WriteLine("Unexpected argument: " + arg); break; } index++; } } if (method == null || uri == null) { PrintUsage(); } Request request = NewRequest(method); if (request == null) { Console.WriteLine("Unknown method: " + method); Environment.Exit(1); } if ("OBSERVE".Equals(method)) { request.MarkObserve(); loop = true; } else if ("DISCOVER".Equals(method) && (String.IsNullOrEmpty(uri.AbsolutePath) || uri.AbsolutePath.Equals("/"))) { uri = new Uri(uri, "/.well-known/core"); } request.URI = uri; request.SetPayload(payload, MediaType.TextPlain); if (uri != null) { Net.CoAPEndPoint ep = null; switch (uri.Scheme) { case "coap+tcp": ep = new TcpEndPoint(); break; case "coaps": ep = new DTLSClientEndPoint(userKey); break; } if (ep != null) { request.EndPoint = ep; ep.Start(); } } // uncomment the next line if you want to specify a draft to use // request.EndPoint = CoAP.Net.EndPointManager.Draft13; Thread.Sleep(1000 * 2); Console.WriteLine(Utils.ToString(request)); try { if (byEvent) { request.Respond += delegate(Object sender, ResponseEventArgs e) { Response response = e.Response; if (response == null) { Console.WriteLine("Request timeout"); } else { Console.WriteLine(Utils.ToString(response)); Console.WriteLine("Time (ms): " + response.RTT); } if (!loop) { request.EndPoint.Stop(); Environment.Exit(0); } }; request.Send(); while (true) { Console.ReadKey(); } } else { // uncomment the next line if you need retransmission disabled. // request.AckTimeout = -1; request.Send(); do { Console.WriteLine("Receiving response..."); Response response = null; response = request.WaitForResponse(); if (response == null) { Console.WriteLine("Request timeout"); break; } else { Console.WriteLine(Utils.ToString(response)); Console.WriteLine("Time elapsed (ms): " + response.RTT); if (response.ContentType == MediaType.ApplicationLinkFormat) { IEnumerable <WebLink> links = LinkFormat.Parse(response.PayloadString); if (links == null) { Console.WriteLine("Failed parsing link format"); Environment.Exit(1); } else { Console.WriteLine("Discovered resources:"); foreach (var link in links) { Console.WriteLine(link); } } } } } while (loop); } } catch (Exception ex) { Console.WriteLine("Failed executing request: " + ex.Message); Console.WriteLine(ex); Environment.Exit(1); } }