笔记13:vb.net网络编程中出现的错误

前端之家收集整理的这篇文章主要介绍了笔记13:vb.net网络编程中出现的错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


一、为什么网络无法连接?

可能原因如下:

1、网址错误,特别是对于ipv4用数字表示时,错一个数字即错;

2、验证出错,检查用户名与密码;

3、服务器拒绝,有些服务器设置了限制,比如5分钟内3次密码错误即进行锁定IP,禁止登录


二、“基础协议出错,服务器协议冲突”

可能原因如下:

1、服务器设置编码不支持中文

2、流读写错误。例如:刚创建的请求流,却对这个流进行读操作。


三、服务器认为命令无效

可能原因如下:

1、下载时,服务器上无此文件

2、上传时,服务器目录文件设置错误。最常见的就是设置为目录而不是文件

因为本地机一般都是把文件放进“目录”。但是FTP上传却是把本地文件上传到“服务器文件”!

例如下面就是错误的:

应设置为FTP上的文件(更兼有重命名的作用)。


三、上传程序死机状态,无法查出原因

可能原因:

1、上传文件较大,等待上传时间较长(可以较小文件进行测试是否死机)

可以用线程或者doevents来消减这种情况。

2、请求流没有关闭,程序一直循环,或者响应流后直接退出程序。

重要的是:请求流必须关闭,再获取响应。

另一个就是文件流最好关闭,因为一般情况,不关闭,流还在缓冲中,没进行设备,易丢失。

  1. Imports System.Net
  2. Imports System.IO
  3. Public Class Form1
  4. Private Sub btnFtp_Click(sender As Object,e As EventArgs) Handles btnFtp.Click
  5. Dim frq As FtpWebRequest,frp As FtpWebResponse
  6. Dim st As Stream,fs As FileStream
  7. Dim byt(1024) As Byte,intCount As Integer
  8.  
  9. Try
  10. frq = CType(WebRequest.Create(txtFtp.Text),FtpWebRequest)
  11. frq.Credentials = New NetworkCredential(txtUser.Text,txtPassword.Text)
  12. frq.Method = WebRequestMethods.Ftp.UploadFile
  13. frq.KeepAlive = True
  14.  
  15. st = frq.GetRequestStream()
  16. fs = New FileStream(txtFile.Text,FileMode.Open,FileAccess.Read)
  17. Do While True
  18. intCount = fs.Read(byt,1024 + 1) '读文件
  19. If intCount > 0 Then
  20. st.Write(byt,intCount) '写入请求流
  21. Else
  22. Exit Do
  23. End If
  24. Loop
  25. st.Close() '========================1、特别重要:发出请求流前须必须关闭
  26. fs.Close() '========================2文件缓存原因,最好关闭
  27. frp = CType(frq.GetResponse,FtpWebResponse) '=========3、
  28. frp.Close()
  29. Catch ex As Exception
  30. MsgBox(ex.Message)
  31. End Try
  32. MsgBox("完成!")
  33. End Sub
  34. End Class

上面1处特别重要,2处最好关闭,不然的话程序会直接到3处时,直接死机或者退出程序。

猜你在找的VB相关文章