多人游戏
使用 XNA 或仅使用常见的 c# win 表单应用程序,这将是创建允许我通过互联网向我的朋友发送短信的功能的最佳方式?
我不知道这是否重要,但我现在有 3 个移动宽带互联网...所以就像...无线互联网,这重要吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
使用 XNA 或仅使用常见的 c# win 表单应用程序,这将是创建允许我通过互联网向我的朋友发送短信的功能的最佳方式?
我不知道这是否重要,但我现在有 3 个移动宽带互联网...所以就像...无线互联网,这重要吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
无论采用何种框架,“通过互联网联系您的朋友”都是相当困难的。
要访问某人的 PC,需要知道目标 PC 的 IP 地址。如果 PC 在路由器后面,则 PC 很可能具有私有 IP 地址,因此无法访问,除非路由器实现某种形式的转发(在这种情况下,给定的 TCP 端口将转发到给定 PC 的内部 IP 地址)。然后,您需要将路由器配置为使用 DDNS,以便您的代码可以获取路由器的 IP 地址。
所以,这是可能的(使用@Bob提到的类),但不适合胆小的人。
专业程序(如聊天客户端)的做法是拥有一个中继消息的中央服务器。在您的 PC 和您朋友的 PC 上运行的代码将消息发送到该服务器,而不是直接相互发送,因此一方不需要知道另一方的 IP 地址。但走这条路需要某种形式的服务器 PC 托管。
It is quite difficult to "reach your friend over the internet", whatever the framework.
Reaching someone's PC requires knowing the IP address of the destination PC. If the PC is behind a router, the PC most likely has a private IP address, thus is unreachable unless the router implements some form of forwarding (in which case a given TCP port is forwarded to a given PC's internal IP address). Then, you need to configure the router to use DDNS so that your code can get at the router's IP address.
So, it is possible (using the classes mentioned by @Bob), but not for the faint of heart.
The way professional programs (like chat clients) do it is to have a central server that relays messages. The code running on your PC and on your friend's PC sends messages to this server instead of directly to each other, so one doesn't need to know the IP address of the other one. But going this route requires some form of hosting for the server PC.
您可以查看 Socket 类或更简单的 TcpClient 和 TcpListener。 XNA 还是 Winforms 都不重要。在 Windows 平台上使用 XNA 使您可以访问整个 .NET 框架,包括网络方面。
You could look into the Socket class or the simpler TcpClient and TcpListener. Whether XNA or Winforms shouldn't matter. Using XNA on the Windows platform gives you access to the entirety of the .NET framework, including the networking aspects.
我同意帝摩斯的观点,你无法直接访问你朋友的设备,你需要一个服务器。当您使用 3G 而不是 WIFI 连接时,运营商不允许使用套接字。
如果您喜欢Skiller SDK解决方案,欢迎您尝试:www.skiller-games.com(完整披露) :我来自 Skiller),我们有分布式服务器,因此您不需要托管任何东西,除了其他工具之外,您还可以使用内置的社交层,您的用户将能够在其中创建朋友列表并互相发送消息.
希望有帮助。
I agree with Timores, you can't directly reach the device of your friend and you will need a server for that. Sockets are not something operators allow when you are connected using 3G and not WIFI.
You are welcome to try if you like the Skiller SDK solution: www.skiller-games.com (full disclosure: I am from Skiller), we have distributed servers so you don't need to host anything and besides other tools you can use the built in social layer where your users will be able to make a list of friends and send messages to each other.
Hope that helps.