1,451
社区成员
发帖
与我相关
我的任务
分享
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
Static strData, strSend As Byte
Winsock.GetData strData, vbString
RichTextBox1.Text = RichTextBox1.Text & strData
RichTextBox1.SelStart = Len(RichTextBox1.Text)
End Sub
Private Const WM_USER = &H400
Private Const EM_EXSETSEL = (WM_USER + 55)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_VSCROLL = &H115
Const SB_BOTTOM = 7
Const WM_KEYDOWN = &H100
Const VK_LEFT As Long = &H25
Dim txtlen As Long
Private Sub txtwrite(str As String)
SendMessage RichTextBox1.hwnd, EM_EXSETSEL, 0, txtlen
RichTextBox1.SelText = str & vbNewLine
txtlen = txtlen + LenB(str) + 2
SendMessage RichTextBox1.hwnd, EM_EXSETSEL, 0, txtlen
PostMessage RichTextBox1.hwnd, WM_KEYDOWN, VK_LEFT, 0
PostMessage RichTextBox1.hwnd, WM_VSCROLL, SB_BOTTOM, 0
End Sub
Private Sub WinsockAHP_DataArrival(ByVal bytesTotal As Long)
Static strData, strSend As Byte
WinsockAHP.GetData strData, vbString
txtwrite (strData)
End Sub
参考自http://blog.sina.com.cn/s/blog_6379dd3b0100u32n.html
现在我有另外一个问题:我接收到的数据字符有的应该在一行的却变成了两行,有办法解决吗?Winsock.GetData strData, vbArray + vbByte
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
Dim strData() As Byte
Dim f As Integer
ReDim strData(bytesTotal-1)
Winsock.GetData strData, vbByte
f=FreeFile()
open "data" for append as #f
print #f,StrConv(strData,vbUnicode)
close #f
' RichTextBox1.Text = RichTextBox1.Text & StrConv(strData,vbUnicode)
' RichTextBox1.SelStart = Len(RichTextBox1.Text)
End Sub
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
dim strData() as byte
ReDim strData(bytesTotal-1)
Winsock.GetData strData, vbbyte
RichTextBox1.Text = RichTextBox1.Text & strconv(strData,vbUnicode)
RichTextBox1.SelStart = Len(RichTextBox1.Text)
erase strData
End Sub
试下啦,慢估计是应为你用static声明的静态变量啦