实现多个TCP通信 接收数据,只能通信最后这个IP,请大神看看问题
var clientHostList = new string[] { "192.168.1.175", "192.168.1.150" };
var port = 8000;
foreach (string host in clientHostList)
{
var st = host;
IPAddress ipAddress = IPAddress.Parse(st);
EndPoint Info = new IPEndPoint(ipAddress, Convert.ToInt32(port));
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
cs.Add(socket);
socket.Connect(Info);
socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallBack), null);
}
第一个IP执行回调函数时报错,通信第个最后一个IP就能接收到数据
private void ReceiveCallBack(IAsyncResult AR)
{
try
{
int REnd = socket.EndReceive(AR);//报错的地方: 未从此类上对应的异步方法中返回 IAsyncResult 对象;
if (REnd > 0)
{
NetInvoke mi = new NetInvoke(UpdateView);
this.BeginInvoke(mi);
}
if (socket != null)
socket.BeginReceive(buffer, 0, buffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}