服务器监听

时间:2012-08-18 21:04:06

标签: vb.net login client ip broadcast

我正在使用VB.NET

所以我有一台服务器每秒广播它自己的IP

Private Sub IPBroadcastTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IPBroadcastTimer.Tick
        BroadcastIP()
End Sub

我是否必须每隔一段时间播放一次,以便客户在几分钟或几小时后接听它?

如果是这样,我如何设置服务器来监听登录?

这是客户端和服务器端发生的事情:

服务器:“每秒广播IP”> “收听来电传输”> “收到3个字符串 [username / pass / ip] > “检查本地XML文件的用户名和密码有效性”> “向目标IP发送确认或拒绝”

客户:“收听服务器广播”> “接收服务器IP”> “通过表单发送3个字符串:用户名,密码和本地IP”> “收听服务器的确认或拒绝”

我用它来发送,但听力似乎不起作用......

Public EndPoint As New IPEndPoint(IPAddress.Parse("255.255.255.255"), 1001) ''Send destination port
Public EndPoint2 As New IPEndPoint(IPAddress.Any, 2001) ''Receive destination port
Public UserIPEndPoint As New IPEndPoint(IPAddress.Any, 2001)
Public UsernameEndPoint As New IPEndPoint(IPAddress.Any, 2001)
Public PassEndPoint As New IPEndPoint(IPAddress.Any, 2001)

Public Send As New UdpClient(2001) ''Send source port
Public Receive As New UdpClient(1001) '' Receive source port

发送:

Send.Send(IPInBytes, IPInBytes.Length, EndPoint)

接收:

Receive.Receive(UserIPEndPoint)

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

广播的目的是什么?如果是供消费者检测服务,也许最好依靠已经开发的协议(例如BonjourSSDP)。与至少SSDP一样,消费者可以广播一个问题(“那里有人吗?”)服务可以回复。服务也可以自发地广播他们的存在,例如当它们被启动时,以便持续检测的消费者可以找到它们。