[C#]大家好,我很好奇我如何创建自己的本地服务器并允许外面的人连接存储在其上的返回数据。我不是在寻找“XNA”解决方案。我想将客户端的骨干消化为服务器。以下是我要找的内容概要:
我的电脑 [服务器] - >不断更新/接收播放器数据,以便其他PC可以获取。存储来自其他客户的数据。
[客户端PC] - >写入服务器(创建新的播放器数据/更新)并获取更多信息以更新视觉效果,其他播放器等。
答案 0 :(得分:0)
这不是任何人都可以做的小事,特别是如果你刚刚进入编程。我首先要做的很小,制作一些较小的应用程序,使用.NET框架库并且感觉很舒服(我会特别关注System.Net/System.Net.Sockets以及可能的System.Security进行SSL加密) 。网络组件将是巨大的,因为您需要实现一个系统来处理持续通信并能够快速响应(任何延迟都可以被视为从网络角度丢弃数据包并导致客户端超时)。您还需要考虑您正在提供什么类型的数据(保存的游戏,播放器数据,是否是个人信息(如密码,电子邮件地址等))以及您将如何存储这些数据。有许多付费和免费技术(Postgres,SQL,MySQL等)。请快速谷歌我提到的一些项目,你会明白为什么开发游戏和后端系统需要数年才能支持多人游戏。
如果你是那种插入内容并通过撕开别人的代码来学习的学习者,我会看一下下面的一些文章。
http://www.codeproject.com/Articles/1415/Introduction-to-TCP-client-server-in-C
http://csharp.net-informations.com/communications/csharp-multi-threaded-server-socket.htm
以下是一些MSDN文章,分析了System.Net命名空间的不同类及其功能。
https://msdn.microsoft.com/en-us/library/system.net(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/system.net.sockets(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/system.security.cryptography(v=vs.110).aspx
您还需要查看使用线程来确保服务器不仅一次处理一个请求。有很多方法,但这里有一些使用线程的基本例子。
http://www.dotnetperls.com/thread
When to use Multithread?(关于如何在我们自己的S / O站点上使用线程的一些指示:))。
这是来自MSDN的线程上的DL
https://msdn.microsoft.com/en-us/library/system.threading.thread(v=vs.110).aspx
并不是要劝阻你,而是要向你展示你必须投入到这类项目中的努力类型。你想做的事情是完全可行的,但需要一些大脑训练和头部刮伤。道歉,如果它听起来居高临下,只是试图指导并且不确定你在c#中的专业水平!祝朋友好运,希望这会成为一次很棒的学习经历!