cmdSend的Click事件:
Dim s As String
Dim i As Integer
s = MudIn.Text + Chr(13) & Chr(10) '给命令行加上回车换行
fMud.MudSock.SendData s
For i = 1 To MudIn.ListCount
If MudIn.List(i) = MudIn.Text Then
MudIn.RemoveItem (i) '删去重复的历史命令
End If
Next i
If MudIn.ListCount > 30 Then '缓冲30条历史命令
MudIn.RemoveItem 0
End If
MudIn.AddItem MudIn.Text '将本条命令加到历史记录最后
MudIn.SelStart = 0
MudIn.SelLength = Len(MudIn.Text) '本条命令文本被选择,以便下
'输入一条命令时,不用擦除便可直接键入
fConnect窗口:
tAddress和fPort的Change事件:
If (tAddress.Text <> "") And (tPort.Text <> "") Then
CmdConnect.Enabled = True
Else
CmdConnect.Enabled = False
End If
Connect按钮的Click事件:
fMud.MudSock.RemoteHost = tAddress.Text
fMud.MudSock.RemotePort = CInt(tPort.Text)
fConnect.Hide
好了,一个MUD客户端服务程序就做好了,你现在已经可以用它连接到MUD了。不过限于篇幅,现在本程序的功能只有输出信息回卷,分开输入输出和重用历史命令,它已比telnet玩MUD好用了。另外,要支持强调显示功能,只需从MUD主机传来的信息串中识别出escape'['控制串,并用RichTextBox的SelColor方法就可以设置文本颜色,这也是我们一开始为什么用RichTextBox而不用一般的TextBox的原因。最后指出,WinSock的Connect连接是否正确应在MudSock的onError事件中编程,本程序略去。