Dim aaa As String
Sub Timeout(interval)
'Pauses for a given time
    Dim Current
    
    Current = Timer
    Do While Timer - Current < Val(interval)
        DoEvents
    Loop
End Sub
Private Sub Command1_Click()
Winsock1.LocalPort = 8786
Winsock1.RemoteHost = "www.sina.com.cn"
Winsock1.RemotePort = 80Winsock1.Connect
Do
If Winsock1.State = sckConnected Then
     '连接
     MsgBox 111
    End IfTimeout (0.6)
Text1.Text = Winsock1.State
Loop While Winsock1.State <> 7
'closes winsockMsgBox Winsock1.State
End Sub'Private Sub Timer1_Timer()'Winsock1.GetData (aaa,string,10000)
'Text2.Text = aaa
'End SubPrivate Sub winsock1_connect()
Winsock1.SendData "!"
Timeout (0.6)
Winsock1.SendData "GET / HTTP/1.1" + Chr(13)Winsock1.SendData "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*" + Chr(13)
Winsock1.SendData "Accept-Language: zh-cn" + Chr(13)
Winsock1.SendData "Accept-Encoding: gzip, deflate"
Winsock1.SendData "If-Modified-Since: Thu, 25 Aug 2005 22:21:40 GMT; length=192814" + Chr(13)
Winsock1.SendData "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" + Chr(13)
Winsock1.SendData "Host: www.sina.com.cn" + Chr(13)
Winsock1.SendData "Connection: Keep-Alive" + Chr(13)
Timer1.Enabled = True
Winsock1.GetData (aaa)
Text5.Text = aaaEnd SubPrivate Sub Command2_Click()
End
End SubPrivate Sub Form_Load()
Me.Top = 0
Me.Left = 0End SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim aaa As String
′接收对方数据并在文本框内显示
Winsock1.GetData aaa
Text3.Text = aaa
End Sub-------------------
以上是我的程序,TCP协议。
可以发送出去。但是接收不到任何的数据。
问题出在哪里??
知道的告诉一下好吗?
谢了。

解决方案 »

  1.   

    我想GETDATA。
    证明我发送的数据能够得到回应。
    我当然有其它用途。
      

  2.   

    你检察一下连接建立好没有?就是state=7不我记得监听以后要在ConnectionRequest方法中:winsock1.localip=""
    .localport=0..Accept requestID
      

  3.   

    Winsock1.State =7
    Private Sub winsock1_connect()
    有响应
    数据已发送。
    但是Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    则没有响应。
      

  4.   

    那就是没有接收到数据的问题
        tcp不应该出现这样的情况,要不就发送不出去,要不就可以接收