示例#1
0
        private static MessageStructure DoRequest(IPEndPoint remoteEndPoint, string param, int bufferSize)
        {
            byte[] data = Encoding.UTF8.GetBytes("?d=" + param);
            MessageStructure ms = null;
            var client = new ClientSocket(new ClientSocketSettings(1024, remoteEndPoint));

            using (var singal = new ManualResetEvent(false))
            {
                client.DataReceived += (sender, e) =>
                {
                    ms = new MessageStructure(e.Data);
                    singal.Set();
                };
                client.Connect();
                client.PostSend(data, 0, data.Length);
                singal.WaitOne(10000);//10s
                client.Close();
            }
            return ms;
        }
示例#2
0
        public void Connect()
        {
            var tasks = new Task[200];
            for (int i = 0; i < tasks.Length; i++)
            {
                tasks[i] = Task.Factory.StartNew((index) =>
                {
                    EndPoint LocalEndPoint = null;
                    IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), port);
                    using (ClientSocket client = new ClientSocket(new ClientSocketSettings(1024, remoteEndPoint), new RequestHandler(new MessageHandler())))
                    {
                        try
                        {
                            client.IsSyncReceived = true;
                            client.Connect();
                            LocalEndPoint = client.LocalEndPoint;
                            Trace.WriteLine(string.Format("Client connect ok,{0}", LocalEndPoint));
                            string str = "hello" + index;
                            byte[] data = Encoding.UTF8.GetBytes(str);
                            if (client.PostSend(data, 0, data.Length).Wait(3 * 1000) && client.Receive(3 * 1000))
                            {
                                byte[] buffer;
                                if (client.TryReceiveBytes(out buffer))
                                {
                                    Assert.AreEqual(Encoding.UTF8.GetString(buffer), str);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Trace.WriteLine(string.Format("Client {0} connect error:{1} ", LocalEndPoint == null ? "" : LocalEndPoint.ToString(), ex.Message));
                            Assert.Inconclusive();
                        }
                    }

                }, i);
            }

            Task.WaitAll(tasks);
            Trace.WriteLine("Client connect test end");
            Thread.Sleep(60000);
        }