请教关于socket接收数据的问题!

Qqwwee_Com 2006-08-31 11:00:10
Dim sck As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
sck.Connect(New Net.IPEndPoint(Net.IPAddress.Parse("61.141.8.70"), 80))


Dim StrGet As String = ""
StrGet += "GET /art/12.htm HTTP/1.1" & vbCrLf
StrGet += "Accept: */*" & vbCrLf
StrGet += "Referer: http://www.1t1k.net" & vbCrLf
StrGet += "Accept-Language: zh-cn" & vbCrLf
StrGet += "UA-CPU: x86" & vbCrLf
StrGet += "Accept-Encoding: gzip, deflate" & vbCrLf
StrGet += "Host: www.1t1k.net" & vbCrLf
StrGet += "Connection: Keep-Alive" & vbCrLf & vbCrLf

sck.Send(System.Text.Encoding.ASCII.GetBytes(StrGet))

Dim buf(8191) As Byte
Dim readed As Integer = 0
Do

readed = sck.Receive(buf, 0, buf.Length, SocketFlags.None)

If readed > 0 Then
Console.WriteLine(Now & "接收字节数:" & readed)
End If
Loop While readed > 0
Console.WriteLine(Now & ":结束")


以后代码为什么运行不到最后一行
Console.WriteLine(Now & ":结束")

,我调试跟踪,发现一直在readed = sck.Receive(buf, 0, buf.Length, SocketFlags.None)这句等待?

...全文
191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
www_123du_com 2006-09-01
  • 打赏
  • 举报
回复
Receive是阻塞的,它会一直等到接受到数据后才会返回,如果一直没有数据,就一直不会返回。(当然也有超时逻辑)
Knight94 2006-09-01
  • 打赏
  • 举报
回复
你最好通过socket对象的Available属性判断一下是否有数据需要读
Qqwwee_Com 2006-09-01
  • 打赏
  • 举报
回复
期待!
Qqwwee_Com 2006-08-31
  • 打赏
  • 举报
回复
在线等待。

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧