C# 用于协同工作的.NET应用程序中的套接字、多线程

C# 用于协同工作的.NET应用程序中的套接字、多线程,c#,.net,multithreading,visual-studio-2010,sockets,C#,.net,Multithreading,Visual Studio 2010,Sockets,我目前正在开发一个类似于简单位图图形编辑器的应用程序,比如MS Paint。 应用程序是Windows窗体,我使用不同的c#图形类进行绘图 我想知道是否有办法使用套接字或任何其他工具使我的应用程序具有协作性。我想允许几个人连接到我的应用程序并以团队方式绘制 可以使用Windows窗体吗?如果您有任何建议,我将不胜感激。首先:不管您是否使用WinForms或任何其他模板。您可以轻松地向任何类型的项目添加缺少的引用 两个可能的套接字是TCP或UDP。 这些套接字的一个问题是它们通常用于p2p连接。

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

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


可以使用Windows窗体吗?如果您有任何建议,我将不胜感激。

首先:不管您是否使用WinForms或任何其他模板。您可以轻松地向任何类型的项目添加缺少的引用

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

在这篇文章中,他们讨论了将多个客户端连接到一台服务器的问题:

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


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

如果你的问题是
Windows窗体是否可行?
答案是肯定的。如果您的问题是关于如何使用工具的,那么答案是
您的问题与主题无关
,您可能希望查看:“另一方面,XWebSocket适合用于客户端应用程序,如本机移动应用程序、WPF、WinForms..”