要求这个客户端完成以下的功能!
服务器的IP地址为:10.1.75.20 
服务器端口号为:12345测试版的服务器应用层协议为:第一步:当服务器收到客户端的连接请求,马上返回数据"100 Welcome to Server for the test of Programming in Internet(Test version)"第二步:服务器收到命令:"LOGIN %%",其中%%表示自己任意的字符串返回数据:"200 Command ok"第三步:服务器收到命令:"RESULT"返回数据:200 Command ok.您的学号:XXXXXXXX, 登录的用户名:%%, 连接次数:$$, 第一次连接时间:@@, 最后一次连接时间:##,其中XXXXXXXX表示自己的学号,%%自己登陆的时候使用的用户名,就是第二步中LOGIN后面的字符串,$$代表你连接到本服务器成功的次数,@@代表你第一次成功连接到本服务器的时间,##代表你最后一次连接到本服务器的时间第三步:服务器收到命令:"QUIT"返回数据:221 Bye-bye,并关闭该套接字 注意事项:1、LOGIN命令和后面的%%(用户名)之间有一个空格2、判断命令是否成功只需要判断服务器回应的消息的最前面3个字符,他们分别代表意义为:100 ------ 连接成功200 ------ 命令正确250 ------ 命令错误,系统不能解析该命令221 ------ 结束这次交互过程,服务器即将关闭该次连接3、服务器接收的最大数据长度150字节,这就意味着LOGIN命令后面的用户名不允许超过144个字节4、服务器返回的最大数据长度250字节,这就意味着客户端的接收缓冲区为251个字节就足够了(最后一个字节存放字符串的结束标志'\0')5、客户端给服务端发送数据时,最后一个字符'\0'不要发送,否则服务器将把该命令确定为非法命令,既而返回结果为250,如"RESULT"命令,发送的字节数为6字节

解决方案 »

  1.   

    Dim i As IntegerPrivate Sub Command1_Click()
    Winsock1.RemoteHost = "10.1.75.20"
    Winsock1.RemotePort = 12345
    Winsock1.ConnectIf Winsock1.RemoteHost <> "10.1.75.20" Or Winsock1.RemotePort <> 12345 Then
     
       MsgBox "connect fail"
      
    End If
    Command1.Enabled = FalseEnd SubPrivate Sub Command2_Click()Winsock1.Close
    Command1.Enabled = TrueEnd SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim data As String
    mylen = Len(data)data = String(bytesTotal + 2, Chr$(0))
    Winsock1.GetData data
    If mylen > 250 Then
    MsgBox "错误"
    End If
    MsgBox data
    Select Case iCase 0Winsock1.SendData "LOGIN aaa"
    i = i + 1
    Case 1
    Winsock1.SendData "RESULT"
    i = i + 1
    Case 2
    Winsock1.SendData "QUIT"
    End Select
    End Sub
    这个是我写的代码。请斑竹帮我补充一下