当前位置:编程学习 > C#/ASP.NET >>

上传文件到FTP服务器上,在局域网中没有问题,但是在广域网中不行

因为是CS结构,而且是framework1.0,所以自己做了一个ftp客户端,但是在局域网中测试没有问题,到广域网中如果不设置断点执行,机器就处于没有反应状态,单步跟踪时,有时没有问题,有时也是没有反应。怀疑可能与网络有关,也可能是连接超时,或者是socket取值、传输的问题。请帮忙指点!谢谢!连接相关代码如下:public  void Connect() 

socketControl = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); 
IPEndPoint ep = new IPEndPoint(IPAddress.Parse(RemoteHost), strRemotePort); 
// 链接 
try 

socketControl.Connect(ep); 

catch(Exception) 

throw new IOException("Couldn't connect to remote server"); 
}  // 获取应答码 
ReadReply(); 
if(iReplyCode != 220) 

DisConnect(); 
throw new IOException(strReply.Substring(4)); 
}  // 登陆 
SendCommand("USER "+strRemoteUser); 
if( !(iReplyCode == 331 || iReplyCode == 230) ) 

CloseSocketConnect();//关闭连接 
throw new IOException(strReply.Substring(4)); 

if( iReplyCode != 230 ) 

SendCommand("PASS "+strRemotePass); 
if( !(iReplyCode == 230 || iReplyCode == 202) ) 

CloseSocketConnect();//关闭连接 
throw new IOException(strReply.Substring(4)); 


bConnected = true;  // 切换到目录 
ChDir(strRemotePath); 

private  void ReadReply() 

strMsg = ""; 
strReply = ReadLine(); 
iReplyCode = Int32.Parse(strReply.Substring(0,3)); 

private string ReadLine() 

while(true) 

int iBytes = socketControl.Receive(buffer, buffer.Length, 0); 
strMsg += ASCII.GetString(buffer, 0, iBytes); 
if(iBytes < buffer.Length) 

break; 


char[] seperator = {'\n'}; 
string[] mess = strMsg.Split(seperator); 
if(strMsg.Length > 2) 

strMsg = mess[mess.Length-2]; 
//seperator[0]是10,换行符是由13和0组成的,分隔后10后面虽没有字符串, 
//但也会分配为空字符串给后面(也是最后一个)字符串数组, 
//所以最后一个mess是没用的空字符串 
//但为什么不直接取mess[0],因为只有最后一行字符串应答码与信息之间有空格 

else 

strMsg = mess[0]; 

if(!strMsg.Substring(3,1).Equals(" "))//返回字符串正确的是以应答码(如220开头,后面接一空格,再接问候字符串) 

return ReadLine(); 

return strMsg; 
} --------------------编程问答-------------------- socketControl.SendTimeout = 3000;   // 设置好超时,否则可能持续等待
socketControl.ReceiveTimeout = 3000; --------------------编程问答-------------------- 学习一下....
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,