以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  UDPClient通讯求助  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=77333)

--  作者:supwork
--  发布时间:2015/11/16 18:06:00
--  UDPClient通讯求助
OPenQQ服务端已启用 UDPClient端口监控

UDPClients.Add("UDP1")
UDPClients("UDP1").IP = "192.168.1.8"
UDPClients("UDP1").Port = 52178
UDPClients("UDP1").Start()

请问在其它客户端如何向该UDPClient端口通讯 确认能否建立连接关系?

--  作者:大红袍
--  发布时间:2015/11/16 18:12:00
--  

一样,只要执行了代码

 

Dim udp As New System.Net.Sockets.UdpClient(0)
Dim ip As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("192.168.1.8"), 52178)


--  作者:supwork
--  发布时间:2015/11/16 18:26:00
--  

你这是在客户端添加一个UDPClient 监听的吧

 

我想知道 客户端如何向 服务器192.168.1.8 的端口52178发送一个消息 并接收到返回消息"ABC"

 

UDPClient ReceivedMessage

 

事件已增加

Dim msg As String = e.Message
Dim ret As String
If e.Message.StartsWith("#A") AndAlso e.Message.EndsWith("A#") 
    e.ReturnValue = "ABC"
End If


事件 的 编辑窗口下面的说明  是 下面这个  要改一下

 

UserChangePassword

 

在内置聊天窗口单击“修改密码”命令时触发。

参考: 让用户主动设置密码

[此贴子已经被作者于2015/11/16 18:27:23编辑过]

--  作者:supwork
--  发布时间:2015/11/16 18:40:00
--  

UDPClients("UDP1").Send("192.168.1.83", 52178, "#AjjkA#") 可以发送值 ,并且在服务器端也看到收到了这个值 ,但是发送端如何获得返回值呢  这个怎么不提供Sendwait呢

 

 

 

ReceivedMessage  的 ReturnValue 又有何用呢

 

[此贴子已经被作者于2015/11/16 18:46:02编辑过]

--  作者:大红袍
--  发布时间:2015/11/16 20:31:00
--  

汗,帮助就已经帮你写好了啊。

 

http://www.foxtable.com/help/topics/3004.htm

 


--  作者:supwork
--  发布时间:2015/11/16 23:12:00
--  
汗 帮助看不懂,帮助是写了一大堆代码,但是没有注释

或者请指点一下,要去恶补一下哪些编程知道方可看懂帮助的代码?

--  作者:Hyphen
--  发布时间:2015/11/17 9:12:00
--  

客户端增加一个函数,比如名称ConnectToUDPServer

 

函数体:

Dim addr As String = args(0)\'服务器IP
Dim port As Integer = args(1)\'服务器端口\'
Dim input As String = args(2)\'发送的内容
Dim seconds As Double = args(3)\'等待时间,以秒记,500毫秒用0.5代替

Dim udp As New System.Net.Sockets.UdpClient(0)
Dim ip As New System.Net.IPEndPoint(System.Net.IPAddress.Parse(addr), port)
Dim bytes() As Byte = System.Text.Encoding.Unicode.GetBytes(input)
udp.Send(bytes, bytes.Length, ip) \'发送数据
Dim result As String = "!false"
Dim sdt As Date = Date.Now
While Date.Now < sdt.AddSeconds(seconds ) \'等X秒
    If udp.Available > 0 Then
        Dim remoteIp As New System.Net.IPEndPoint(System.Net.IPAddress.Any, 0)
        Dim rbytes() As Byte = udp.Receive(remoteIp)
        result = System.Text.Encoding.Unicode.GetString(rbytes) \'获取返回值
       
    End If
End While
udp.Close()

Return result

 

Foxtable客户端这样用:

dim result as string = Functions.Execute("ConnectToUDPServer","192.168.1.8",52178,"#AA#",0.5)

msgbox(result)