目的,为服务端和服务器制造并发连接以及传输大批量数据的压力客户端:可瞬时对同一IP同端口发起并发量大的连接,并且保持这些连接不断开。
客户端有个按钮,按下去就开启发起并发量大的连接
  
按钮点击事件里面#region
//在这里tcpCounts为要并发的连接数量
 for (int i = 0; i < this.tcpCounts; i++)
  {
  ThreadPool.QueueUserWorkItem(delegate { UseThreadPool(); });
  }
#endregion//使用连接池方法  
 private void UseThreadPool()  
  {
  // 实例化 套接字 (ip4寻址协议,流式传输,TCP协议)
  socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);  //创建 ip对象
  IPAddress address = IPAddress.Parse(this.remoteIP.Trim());  //创建网络节点对象 包含 ip和port
  IPEndPoint endpoint = new IPEndPoint(address, this.remotePort);try
  {
  socketSend.Connect(endpoint);
  }
  catch (Exception ex)
  {
  this.lbl_alertMessages.Text = ex.Message.ToString() + this.threadName;
  return;
  }  if (socketSend.Connected)
  {
  reportTimer.AutoReset = true;
  reportTimer.Interval = this.reportPeriodicTime * 1000;
  reportTimer.Elapsed += new System.Timers.ElapsedEventHandler(SendMessages);
  reportTimer.Enabled = true;
  }
  }
报的是"在一个已经连接的套接字上做了一个连接请求"错误
请问如何解决呢?

解决方案 »

  1.   

    我这里使用了线程池,可是每次走到了socket.connect的时候就报错 在一个已经连接的套接字上做了一个连接请求 (后面跟上我指定的ip和端口号)服务器也只能收到一个线程发来的数据
      

  2.   


    创建多个socket 为何解?给你一个例子吧  http://blog.csdn.net/fengyarongaa/article/details/6631953
      

  3.   

    jogwu你好,你的那个例子,可以用C语言编写吗?我不会C++,可以把C代码发给我吗?谢谢。