最近正在学习winsock控件,遇到个小问题,希望老师们帮忙解决下.
以下是一个单向局域网即时通讯工具服务端的代码
Private Sub Command1_Click()
End
End Sub
Private Sub Command2_Click()
Dim txt As String
txtsend.Text = txt
Server.SendData txt
End Sub
Private Sub Form_Load()
Server.LocalPort = 1111
Server.Listen
Form2.Show
End Sub
Private Sub Server_ConnectionRequest(ByVal requestID As Long)
If Server.State <> sckClosed Then _
Server.Close
Server.Accept requestID
当运行这一程序时,客服端并不能得到数据,但是当我把
Private Sub Command2_Click()
Dim txt As String
txtsend.Text = txt
Server.SendData txt
End Sub
这一段代码中的变量txt去掉,即为
Private Sub Command2_Click()
Server.SendData txtsend.Text
End Sub
时,程序就能正常使用了?这是为什么那?
难道winsock控件的SendData属性不能定义变量吗?
还有,可以用什么代码判断是否建立TCP连接,及在已经建立连接的情况下断开连接?请问你是要通过文本框中的文本来设置得到服务器状态参数吗?那么你的语句有一点是不太妥的,就是变量类型不一致的问题,我给你举个例子吧,比如你现在要通过设置文本框中的文本来改变程序运行时的串口号,那么你就需要用到Val()函数,并且语句如下:
Dim Portnumber as string
Portnumber = Val(text1.text)
MSComm1.Commport = Portnumber
Val()函数的作用是返回十进制数字。VB中串口号应以十进制数字表示,MSComm1.Commport 属性识别的也是十进制数,所以在将串口号赋给属性之前要先把它设置成十进制数字。
通过这个例子,我想你删掉的那3行语句犯的毛病可能也与变量类型有关系,你可以在这个方面下手查查你要设置的属性能够识别的变量类型是什么,再做修改应该就可以了吧。我以前就遇到过类似的问题呢。