如何用VB实现telnet功能?

zhilamin 2010-02-01 08:59:44
我想用VB实现cmd里的telnet功能.用到winsock控件,但总无法正常连接上外部系统.但在cmd里用telnet能正常进入到外部系统.

在网上查了几天,都没有发现有关这方面的文章.

希望有高手帮忙.谢谢.

在cmd里:

telnet 132.xxx.xx.xx

login:
password:

但在VB中用winsock, 只返回一个 "?"
...全文
670 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovecatfish 2010-02-09
  • 打赏
  • 举报
回复
搞了很久,还是不行!郁闷
zhanbeen 2010-02-08
  • 打赏
  • 举报
回复
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim ch() As Byte
Dim tr() As Byte
Dim i As Integer
Dim str As String
Dim Pos_Tmp As Integer
Dim Str_Tmp As String
'-------------------------------------------------------------
If (bytesTotal > 0) Then ' If there is any data...
Winsock1.GetData ch, vbByte + vbArray, bytesTotal

Else
Receiving = False
Exit Sub
End If
'-----------------
str = ""
For i = 0 To bytesTotal - 1
str = str & Chr$(ch(i))
Next i
'Text3 = Text3 & str 全部显示所有命令和返回字符
Text3 = str
'--------------处理接收数据---------
Dim cc, ccc As String
cc = Right(Trim(Text3.Text), 2)
ccc = Right(Trim(cc), 1)
If cc = "n:" Then
flgcount = flgcount + 1
Receiving = True
End If
If cc = "d:" Then
flgcount = flgcount + 1
Receiving = True
End If

If ccc = ">" Then
flgcount = flgcount + 1
Receiving = True
End If
If ccc = "#" Then
flgcount = flgcount + 1
Receiving = True
End If


'---------------------------------------------
If ch(0) = 255 Then
If ch(1) = 253 Then
ReDim tr(14) As Byte
tr(0) = 255: tr(1) = 252: tr(2) = 24
tr(3) = 255: tr(4) = 252: tr(5) = 32
tr(6) = 255: tr(7) = 252: tr(8) = 35
tr(9) = 255: tr(10) = 252: tr(11) = 39
tr(12) = 255: tr(13) = 252: tr(14) = 36
End If
If ch(1) = 251 Then
ReDim tr(17) As Byte
tr(0) = 255: tr(1) = 253: tr(2) = 3
tr(3) = 255: tr(4) = 251: tr(5) = 1
tr(6) = 255: tr(7) = 252: tr(8) = 34
tr(9) = 255: tr(10) = 254: tr(11) = 5
tr(12) = 255: tr(13) = 252: tr(14) = 31
tr(15) = 255: tr(16) = 252: tr(17) = 37
End If
Winsock1.SendData tr
Receiving = False
End If

End Sub
赵4老师 2010-02-05
  • 打赏
  • 举报
回复
楼主可以试试让WinSock控件收发Byte数组可能就没问题了。
记得Byte数组和String类型互换时使用
Str=StrConv(ByteArray,vbUnicode)
ByteArray=StrConv(Str ,vbFromUnicode)
赵4老师 2010-02-05
  • 打赏
  • 举报
回复
VB6出问题可能是在数据IO时自动进行Unicode变换弄的。
赵4老师 2010-02-05
  • 打赏
  • 举报
回复
抓包分析是正途
zhanbeen 2010-02-05
  • 打赏
  • 举报
回复
以往做了个登陆redback 的se800设备,回头找找
zhanbeen 2010-02-05
  • 打赏
  • 举报
回复
要抓包分析一下回应字符,不同路由器回复字符不一样
zhilamin 2010-02-05
  • 打赏
  • 举报
回复
谢谢zhao4zhong1,但我不太明白!
zhilamin 2010-02-04
  • 打赏
  • 举报
回复
谢谢 楼上各位仁兄的帮助,但问题还是没有解决。这方面的高手出现!切盼切盼!!
zhilamin 2010-02-03
  • 打赏
  • 举报
回复
也想知道。。。。。。
  • 打赏
  • 举报
回复
看看
http://www.asm32.net/article_disp.asp?ID=440
zhilamin 2010-02-02
  • 打赏
  • 举报
回复
有没有高手帮忙啊,很想解决这个问题,我已经查相关资料查了差不多十天了。help!!
zhilamin 2010-02-02
  • 打赏
  • 举报
回复
难道没有多少人遇到这样的问题吗?!!怎么在网上怎么搜都搜不到这问题的答案!!希望有高手帮忙
zhilamin 2010-02-02
  • 打赏
  • 举报
回复
谢谢patrickkong,回去试试。不过代码很长,但我还得细细钻研下才行,因为太想实现这个winsock的telnet功能了。
lly456 2010-02-02
  • 打赏
  • 举报
回复
好像 。。。。。。。。。。。。我也不懂
zhilamin 2010-02-01
  • 打赏
  • 举报
回复
二楼Modest所给来的telnet在连接我所要连接的系统,还是用不了.\
另,我不知道如何用管道控制cmd.请指教.谢谢
迈克揉索芙特 2010-02-01
  • 打赏
  • 举报
回复
看看这个:
http://d.download.csdn.net/source/1714073
未经测试

据我所知,用管道控制cmd是个办法。

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧