17 12
发新话题
打印

[网络] 求助:vb中使用winsock控件开发telnet客户端程序的问题,详见内

求助:vb中使用winsock控件开发telnet客户端程序的问题,详见内

问题:大多数服务器端都可以正常连接,只有一类终端连接后没有任何回显,发送指令也没有反应,而这一类服务器端使用windows命令行的telnet、超级终端、SecureCRT等终端工具都可以正常连接,急盼高人回复。VB代码节选如下:

'送指令
Private Sub SendStringToDevice(LineText As String)
Dim Temp1 As String, L As Integer, i As Integer, K As Integer, A As String
L = Len(LineText)
For i = 1 To L
  A = Mid(LineText, i, 1)
  Call SendSigleKey(Asc(A))
Next i

End Sub


Private Sub SendSigleKey(KeyAscii As Integer)
On Error GoTo 1
If KeyAscii = 13 Then
  'Text2.Text = ""
  Winsock1.SendData Chr(13)
  KeyAscii = 0
Else
  Winsock1.SendData Chr(KeyAscii)
  'DoEvents 注释不注释没有区别
End If
Exit Sub
1  KeyAscii = 0
End Sub


'获得和显示数据
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strbuf As String
Winsock1.GetData strbuf, vbString
Text1.Text = Text1.Text & strbuf
End Sub


我已经试了自己能找到的任何方法,但服务器端只返回“????”,服务器是成熟的商用软件,且其他终端工具登录都没有问题。
急啊!

TOP

换个头像,看见广告就眼红,直接封ID。

TOP

谢谢回复!
可是这段代码以前就下载过,仍然有前述的问题。

TOP

下面代码的问题
复制内容到剪贴板
代码:
Dim strbuf As String
Winsock1.GetData strbuf, vbString
Text1.Text = Text1.Text & strbuf
关于出现???可能是字符编码的问题,还有可能是字体,一般中文字会出现???
你可以改一下Text1的字体,将它设置成宋体试试。
换个头像,看见广告就眼红,直接封ID。

TOP

谢谢!
现在text1的字体就是宋体,我又把它字符集改成了“西方”,还是不行。
我感觉是winsock的connect的问题,客户端无法正确连接服务器端,发出的连接指令服务器端没有正常反应。
想问一下:除了
Form1.Winsock1.Connect IPAdd, "23"
这种方式外,还有什么方法可用?

TOP

你的意思是说能收到????,但不能收到字正确的字符?
这样试试
复制内容到剪贴板
代码:
    Dim strbuf() As Byte
    Winsock1.GetData strbuf, vbArray + vbByte
    Text1.Text = Text1.Text & StrConv(strbuf, vbUnicode)
换个头像,看见广告就眼红,直接封ID。

TOP

谢谢版主!
我改了,可还是不行,感觉是connect就没有正确连接服务器端。
如果只是回显不正常倒还好办一点

TOP

没有正确连接咋能收到。???晕也。。

  Winsock1.SendData Chr(13)

上边啥意思?传递数组吗?

TOP

楼上的
复制内容到剪贴板
代码:
问题:大多数服务器端都可以正常连接,只有一类终端连接后没有任何回显,发送指令也没有反应

你说说这类服务器端是什么服务器?不会是加密的SSH服务吧?
换个头像,看见广告就眼红,直接封ID。

TOP

是标准的telnet server,不是ssh服务器。用dos命令行、超级终端等终端工具都可以telnet上服务器,服务器返回字符如下:

Pragma Systems Inc.
Welcome to Pragma TelnetServer 2000 for Windows NT
(C) Copyright 1994-2000 Pragma Systems, Inc.

login name:

TOP

 17 12
发新话题