日期:2014-05-18  浏览次数:21444 次

同时创建多个socket如何解决?
目的,为服务端和服务器制造并发连接以及传输大批量数据的压力

客户端:可瞬时对同一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;
  }
  }


报的是"在一个已经连接的套接字上做了一个连接请求"错误
请问如何解决呢?

------解决方案--------------------

创建多个socket 为何解?

给你一个例子吧 http://blog.csdn.net/fengyarongaa/article/details/6631953