用CSocket类,TCP编程,客户端和服务器端运行于同一电脑上,当连接成功后,将网线拔出,这时服务器端可以向客户端发一次数据,而且是成功的,之后就发送不成功了。而客户端在拔出网线之后不能向服务器端成功发送一次数据,请问这是什么?

解决方案 »

  1.   

    其实发送是没有成功的,因为客户端没有接收到这个数据吧?其实服务器端只是把数据发送到了发送缓冲区中,这是send函数就会返回发送成功的信息了但是数据并没有真正的通过网卡发送出去
      

  2.   

    哦,没注意看到是在同一台主机上啊,在两台主机分别运行当然是不行了我想也许是因为虽然拔掉了网线,但是他们之间的socket连接在一定的超时时间之内还没有失效的缘故吧
      

  3.   

    recv还能从缓冲区中取出之前发来的数据,所以会成功