如何通过TCP连接获取通过winsock发送的字节数?
答案 0 :(得分:0)
它只是send()的返回值。 有关send或Winsock的更多信息,请查看此处: http://msdn.microsoft.com/library/windows/desktop/ms740149%28v=vs.85%29.aspx
答案 1 :(得分:0)
问题:
有几个选择:
您只需计算您发送的数据的长度即可。如果它是一个字符串就很容易: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
如果是这种情况,上述代码只会在lonBytesSent = 0
来电之前删除.SendData()
。如果您要发送大量数据,则可能需要使用比Long
更大的数据类型。