Tcp VB6:如何获取通过winsock发送的字节数?

Tcp VB6:如何获取通过winsock发送的字节数?,tcp,vb6,winsock,Tcp,Vb6,Winsock,如何获取通过TCP连接通过winsock发送的字节数?这只是send()的返回值。 有关send或Winsock的更多信息,请参见此处: 问题: 您想知道单个.SendData()调用发送了多少字节吗 或者您想知道在程序运行的整个生命周期中发送了多少字节 问题1。 有几种选择: 您只需计算发送数据的长度即可。如果它是一个字符串,这很容易:Len(DataBeingSent)将给出字节数。告诉我们你在发送什么或者给我们看一些代码 您可以使用表单范围变量进行跟踪,但在我看来,这是一种非常糟糕的方法,

如何获取通过TCP连接通过winsock发送的字节数?

这只是send()的返回值。 有关send或Winsock的更多信息,请参见此处: 问题:

  • 您想知道单个.SendData()调用发送了多少字节吗
  • 或者您想知道在程序运行的整个生命周期中发送了多少字节
  • 问题1。 有几种选择:

  • 您只需计算发送数据的长度即可。如果它是一个字符串,这很容易:Len(DataBeingSent)将给出字节数。告诉我们你在发送什么或者给我们看一些代码

  • 您可以使用表单范围变量进行跟踪,但在我看来,这是一种非常糟糕的方法,除非是针对上面的问题#2

    Option Explicit
    
    Private lonBytesSent As Long
    
    Private Sub Winsock1_Connect()
      Dim strData As String
    
      strData = "This example uses a string but will work with any type being sent."
      ' Reset the number of bytes sent from any previous packets.
      lonBytesSent = 0
      Winsock1.SendData strData
    End Sub
    
    Private Sub Winsock1_SendComplete()
      MsgBox CStr(lonBytesSent) & " byte(s) sent on last transmission.", vbInformation
    End Sub
    
    Private Sub Winsock1_SendProgress(ByVal bytesSent As Long, ByVal bytesRemaining As Long)
      lonBytesSent = lonBytesSent + bytesSent
    End Sub
    
  • 问题2。 如果是这种情况,上述代码将起作用,只需在调用
    .SendData()
    之前删除
    lonBytesSent=0
    。如果要发送大量数据,则可能需要使用比长数据类型更大的数据类型