winsck.GetData接收到的字符串是"??",请问是存放的变量有问题吗?我测试过,有些服务器的连接显示是正常的,有些服务器的连接显示是错误的。。Dim data_re As String
winsck.GetData data_re, vbString
textbox1.text = data_re

解决方案 »

  1.   

    直接用CMD去telnet服务器显示都是正常的呀
      

  2.   

    最好是按字节发送,字节接收''''''发送'''''''''''
    Dim  b() as byte
    b = "你好VB"
    winsck.sendData bc
     ''''''''就收'''''''''''
    Dim  b() as byte
    winsck.GetData b, 17
    textbox1.text = b
      

  3.   

    ''''''发送'''''''''''
    Dim b() as byte
    b = "你好VB"
    winsck.sendData b
    ''''''''就收'''''''''''
    Dim b() as byte
    winsck.GetData b, 17
    textbox1.text = b
      

  4.   


    使用 Byte 数组接收。中文 Windows 系统会自作主张地将不能解析的字符串数据用问号替代。
      

  5.   

    不知道有多少前人掉在TCP Socket
    send(人多)send(病少)send(财富)
    recv(人多病)recv(少财富)
    陷阱里面啊!
      

  6.   

    那请问Byte又如何转换成String呢?
      

  7.   

    VB 中Byte数组 和String 是可以直接转换的dim s as string ,b() as byte
    b= "你好vb"
    s = b
    msgbox cstr(b)
    msgbox s
    msgbox b
    效果都是一样的
      

  8.   

    但是还是乱码呀,winsck.GetData b, 17,这个17参数就是表示接收数据为Byte吗?
      

  9.   

    对啊 17 就是 vbByte
    那你的 sendData 语句是怎么写的?
      

  10.   

    我在connect方法以后就会收到回传的信息,不用send就收到了信息,但是是乱码,
      

  11.   

    返回的提示是 ansi 编码,请问应该怎么处理呀?
      

  12.   

    不可能吧,没有senddata ,怎么会接受到信息?
    那是谁发送的?Private Sub winsck_DataArrival(ByVal bytesTotal As Long)
    winsck.GetData b, 17
    debug.print "长度=" & bytesTotal
    debug.print b
    debug.print strconv(b,64)
    debug.print strconv(b,128)
    '看看都是什么?有多长?
    end sub
      

  13.   


    Private Sub winsck_DataArrival(ByVal bytesTotal As Long)
    winsck.GetData b, 17 
    textbox1.text =strconv(b,64) 
    end sub你是发送的文件吧?
      

  14.   

    我是用windows的CMD登录显示是正常的Pragma Systems Inc.
    Welcome to Pragma TelnetServer
    (C) Copyright 1994-2005 Pragma Systems, Inc.login name: 123
    password: ***********
    Windows NT Domain:User Account verification is being performed. Please Wait.
    Client reported TERM=ansiMicrosoft Windows [Version 5.2.3790]
    (C) Copyright 1985-2003 Microsoft Corp.c:\winnt\profiles\aaaa>
      

  15.   

    那就是说服务端不是你写的?
    Private Sub winsck_DataArrival(ByVal bytesTotal As Long)
    dim b() as byte
    winsck.GetData b, 17  
    textbox1.text =strconv(b,64)  
    end sub
      

  16.   

    Private Sub winsck_DataArrival(ByVal bytesTotal As Long)
    dim b() as byte
    winsck.GetData b, 17   
    for i = 0 to ubound(b)
     debug.pring b(i)
    next
    ' 发上来看看到底是啥?
    end sub
      

  17.   

    这个肯定不是常规的字符串,由于不知道服务器是做什么的,所以无法猜测到底是什么数据类型。看起来这个些字节是 3个一组,可以用Long值取得实际数据共4个Sub tttttt()
        Dim b(1 To 12) As Byte
        b(1) = 255
        b(2) = 253
        b(3) = 24
        b(4) = 255
        b(5) = 253
        b(6) = 32
        b(7) = 255
        b(8) = 253
        b(9) = 35
        b(10) = 255
        b(11) = 253
        b(12) = 36    Dim bb(3) As Long
        bb(0) = 24
        bb(1) = 32
        bb(2) = 35
        bb(3) = 36
        j = 0
        For i = 1 To 12 Step 3
            bb(j) = RGB(b(i), b(1 + i), b(i + 2))
            Debug.Print bb(j)
            j = j + 1
        Next 
    End Sub
    有几点无法确定,这台服务器是做什么的? 服务端软件是不是你写的?
    你只是说 一台服务器,这太笼统了。这些值 代表什么就无从得知了。如果你想控制这台服务器,你应该去红客联盟。 
      

  18.   

    如果是加密为什么我用CMD登录是正常的呀???
      

  19.   

    你虽然CMD登录了,但是你没有取得返回值。
    这12个字节在CMD中有显示吗?
      

  20.   

    那会不会返回的不是 byte 而是其他类型呢?如何判断?
      

  21.   

    网络传输,最原始的数据就是 byte,而且所有的数据类型都可以转换成 byte
    12个字节无法判断倒是是什么。
      

  22.   

    也许就是个无关紧要的标识。
    你 CMD登录,有没有输入用户名和密码?
    如果有的话,在就收到这12个字节后忽略它,直接用客户端发送用户名和密码过去,再接收看看有什么?