读书人

急Socket/Ftp连接怎么真正断开

发布时间: 2012-09-18 16:21:42 作者: rapoo

急!!Socket/Ftp连接如何真正断开?
我的C#程序中分别使用过socket和webclient。
其中webclient使用uploadfile方法上传一个ftp文件。可是在文件上传后,通过ftp服务器发现我的连接还存在,即使我调用了Dispose方法也没有作用,为什么?我该如何真正断开这个ftp连接?
代码如下:

C# code
        private void Btn_Upload_Click(object sender, EventArgs e)        {            WebClient webClient = new WebClient();            Uri uri = new Uri(string.Format("ftp://{0}/{1}", T_Server.Text, "Test.txt"));            webClient.Credentials = new NetworkCredential(T_User.Text, T_Pswd.Text);            webClient.UploadFile(uri, "Test.txt");            webClient.Dispose();        }


socket连接也有类似问题,连接并没有真正断开,请问我该如何处理??


[解决办法]
socket直接掉close()方法就行,WebClient确实没找到关闭方法,微软的示例是关闭从他那里得到的reader,代码是这样:
WebClient client = new WebClient ();

// Add a user agent header in case the
// requested URI contains a query.

client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

Stream data = client.OpenRead (args[0]);
StreamReader reader = new StreamReader (data);
string s = reader.ReadToEnd ();
Console.WriteLine (s);
data.Close ();
reader.Close ();

[解决办法]
没做过,友情帮顶!
[解决办法]
using
[解决办法]
使其Session失效看看.
[解决办法]
对于FTP的结束,你需要发送QUIT命令才能让FTP服务器认为你退出了。ABOR也可以,不过含义不同。

你仅仅关闭Socket连接肯定是不够的。

读书人网 >C#

热点推荐