我的代码:Byte[] by=new Byte[4194304];//4M
int port = 7200;
string host = "192.168.26.167";
IPAddress ip = IPAddress.Parse(host);
IPEndPoint ipe = new IPEndPoint(ip, port);
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Connect(ipe);
s.Send(by, by.Length, 0);//成功发送
s.Send(by, by.Length, 0);//不成功发送,会报错“您的主机中的软件放弃了一个已建立的连接”请问各位高手,我向服务器每次都是发送4M大小的数据包,只能成功第一次,然后就报错,如上,为什么?
先谢谢了!!

解决方案 »

  1.   

    你看看服务器的socket是不是在接受好数据后,就关闭了传送数据的那个连接,这样你第二次就要重新连接过去后,再传送数据:s.Connect(ipe);
    s.Send(by, by.Length, 0);//成功发送s.Connect(ipe);
    s.Send(by, by.Length, 0);//不成功发送,会报错“您的主机中的软件放弃了一个已建立的连接”
      

  2.   

    是不是服务器上接收第2个4M数据时,发生了异常,导致了socket被关闭,所以第二次发送就报
    不成功发送,会报错“您的主机中的软件放弃了一个已建立的连接”但是第一次发送成功后,第二次服务器接收前,连接是好的,所以服务端不让再次连接