我需要从我的Android应用程序发送一些短信到我的windows c#app。到目前为止,我已经找到了使用以下的TCP连接:
Socket socket = new Socket(serverAddr, Integer.parseInt(myPort));
在我的客户端(java)和:
IPAddress ipAd = IPAddress.Parse(ip);
myList = new TcpListener(ipAd, Int32.Parse(port));
myList.Start();
在我的服务器端(c#)。 Here is all the code
问题是我不能在每次安装时检索服务器ip ...并且静态IP不是一个选项。所以我开始搜索广播解决方案,但网上有很多可能的选项,如:
MulticastSocket
UdpClient
其他那些我不能说出它们之间的区别或者对我的案例最好的,有谁可以帮我解决这个问题?任何解释或代码都是完美的。
最后,如果我尝试设置UDP连接,我是否需要特定端口?或者任何人都应该没事?
答案 0 :(得分:0)
这完全取决于发件人(Android应用)如何识别收件人。您对如何确定收件人的要求必须有一些逻辑。
一些常见的情况是: - 一对一,即对等对。在这种情况下,发件人知道收件人(以及IP地址) - 一对多,即具有订阅模型,其中发送者将消息发送到"主题"然后将该消息转发给多个(注册的)接收者。 "主题"知道所有收件人的详细信息(即他们的IP地址),并且发件人将使用预先确定的IP将消息发送到"主题"云中的知名主持人"
除非您指定有关应用程序方案的更多细节,否则我担心技术级别(广播/ UDP /端口等)无法提供帮助。
请注意:对于UDP,发送方也需要知道端口,就像使用TCP一样。唯一的区别是UDP不会保持连接打开(有状态)。