Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

7年前关闭。



Improve this question




我目前正在开发一个类似于简单的位图图形编辑器(如MS Paint)的应用程序。
该应用程序是Windows窗体,我使用不同的C#图形类进行绘制。

我想知道是否有一种方法可以使用套接字或任何其他工具来使我的应用程序具有协作性。我想允许几个人连接到我的应用程序并进行团队协作。

Windows窗体可以吗?我将不胜感激任何建议。

最佳答案

首先:使用WinForms或任何其他模板都没有关系。您可以轻松地将丢失的引用添加到任何类型的项目。

两个可能的套接字是TCP或UDP。
这些套接字的问题在于它们通常用于p2p连接。
另外,只有TCP才能保证所有已发送数据包的正确到达,因此强烈建议您这样做。

在此线程中,他们讨论了许多客户端在一台服务器上的问题:
TCP server with multiple Clients

如果使它可以连接多个连接,则应该考虑一个系统来处理每个客户端的更改。
我建议一个服务器/客户端系统,由一个人主持 session 。
每个客户端都有图像的副本,每当有人更改像素时,都会调用一个本地事件,该事件将更改传输到服务器。
现在,服务器只需“刷新”对连接的每个客户端的更改。

一件棘手的事情可能是两个客户端同时更改相同的像素,但这就是您的工作= P

09-18 14:05