我写聊天程序的问题
服务器端发送请求好友的在线状态。
Public Function GetBuddys(UserCommand As String, Index As Integer)
On Error Resume Next
rs.Open "select buddy from buddies where user = '" & Word(UserCommand, 2) & "'", conn
While rs.EOF = False
    For u = 0 To intMax
        If ServiceSocket(u).State = 7 Then'在线
            ServiceSocket(Index).SendData ".pushbuddy " & TranslateStatus(UserInfo(u).Status) & " " & UserInfo(u).UserID & " " & UserInfo(u).UserID
            DoEvents
            Exit For
        Else'不在线
            ServiceSocket(Index).SendData ".pushbuddy Offline " & rs.Fields("buddy") & " " & rs.Fields("buddy")
            DoEvents
            Exit For
        End If
    Next
    rs.MoveNext
Wend
Set rs = Nothing
'结束
ServiceSocket(Index).SendData " .endpushbuddy"
End Function客户端接收
Winsock.GetData str判断str的开头是“".pushbuddy ”相应在客户端显示好友的状态。
但是在str的最后有的时候会有“.endpushbuddy”,有的时候没有。
就是说服务器端的上面的Function中发送的str被客户端识别成一次发送的了。
我不希望把“.endpushbuddy”追加在上一次的发送后,
因为我的“.endpushbuddy”是客户端请求未接收的离线消息的,
我是这样想的,
如果那位高手有更好的思路,请教
我的QQ:271702352
Email:[email protected]