VB怎么给winsock的端口号赋值

来源:百度知道 编辑:UC知道 时间:2024/06/22 01:35:06
对IP Winsock1.RemoteHost = Text3.Text 这样赋值是可以 在窗口输192.128.0.XXX是可以的

但是对端口这样不行呢 Winsock1.LocalPort = Text4.Text Winsock1.RemotePort = Text4.Text 这样赋值就通不过 是语法有错吗 端口号是整数 比如3001 是不是就不能这样赋呢

应该怎么赋呢 我需在外面的Text上直接输端口号 求教
Private Sub Command1_Click()

Winsock1.SendData txtSend.Text

End Sub

Private Sub Form_Load()

Dim my As String
Winsock1.Protocol = sckUDPProtocol '设置为UDP协义
Winsock1.LocalPort = Text4.Text
Winsock1.RemotePort = Text4.Text
Winsock1.RemoteHost = Text3.Text
End Sub

Private Sub Text3_Change()

Winsock1.RemoteHost = Text3.Text

End Sub

Private Sub Text4_Change()

Winsock1.LocalPort = Text4.Text
Winsock1.RemotePort = Text4.Text

End
运行的时候说类型不匹配,但是如果把Text4.Text改成整数的话,就完全没问题。

复制下面的代码

Private Sub Command1_Click()

Winsock1.SendData txtSend.Text

End Sub

Private Sub Form_Load()
Command2.Caption = "连接"
End Sub
Private Sub Command2_Click()
If Len(Text4.Text) = 0 Or Val(Text4.Text) > 65535 Then
MsgBox "请输入正确的端口号"
Exit Sub
End If
Dim my As String
Winsock1.Protocol = sckUDPProtocol '设置为UDP协义
Winsock1.LocalPort = Text4.Text
Winsock1.RemotePort = Text4.Text
Winsock1.RemoteHost = Text3.Text
End Sub

Private Sub Text4_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) > 9 And KeyAscii <> 8 Then KeyAscii = 0
End Sub

Winsock1.LocalPort = Text4.Text
这样应该行,会不会是其它地方有问题。

因为Winsock的LocalPort和RemotePort属性都是Integer类型,TextBox的Text是String类型。
也就是说,如果程序禁止了隐式转换的话,单纯使用
Winsock1.LocalPort = Text4.Text
语句是会产生错误的

所以需要将String类型转换为Integer类型使类型匹配
将上面的语句更改为:
Winsock1.Loc