tftp error #10054

MSDN上的10054错误号说明:WSAECONNRESET   (10054) 
  Connection reset by peer.  
 
  A existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, or the remote host used a "hard close" (see setsockopt for more information on the SO_LINGER option on the remote socket.)
    也就是说,一个连接被对方重设。一个建立的连接被远程主机强行关闭,若远程主机上的进程异常终止运行(由于内存冲突或硬件故障),或者针对套接字执行了一次强行关闭,便会产生10054错误。针对强行关闭的情况,可用SO_LINGER套接字选项和setsockopt来配置一个套接字。
 
注:TFTP是基于UDP实现的。

 
http://blog.csdn.net/roger_77/archive/2006/12/22/1452994.aspx
windows的Socket编程中,可以使用系统提供的GetLastError()函数得到错误号.
我们程序中的10054号错误,后来调试发现主要是由于发送端的发送数据缓冲区没有及时正确的清理造成。
 
http://www.zhaomingliang.com/2007/07/833/socket-error-10054-solition/
cuteftp最近一段时间传东西上去的时候老出现Socket 错误 = #10054.我查阅了一些资料,发现出现同一个问题的不少.但是我出现的情况是只有某个小于2M的特定文件传不上某些个服务器.我先是怀疑2003 sp2的问题,所以先卸载了其中的一台机器的sp2,依然.改变传输模式依然不能完全解决.后来找到了一个方法,把发送缓冲(SEND BUFFER)从默认的64k降低到2k,问题解决.
但是我百思不得其解,什么原因呢?难道真是传说中”七层防火墙”导致数据传输的时候被截了?

你可能感兴趣的:(网络相关,socket,application,防火墙,buffer,服务器,编程)