单声道兼容网络/套接字库

时间:2009-09-11 03:05:37

标签: c# networking sockets mono

那里有没有Mono(C#)兼容的网络/套接字库吗?

最好是:

  • 多线程
  • 事件驱动
  • 能够进行多重连接
  • 处理客户端和服务器部分
  • 运行Mono和MS .NET运行时
  • 非常简单
  • 免费(可在商业软件中使用)

如果它是真的很棒:

  • .NET Compact Framework(Windows Mobile)兼容
  • 兼容MonoTouch(iPhone)

修改

为了澄清更多,我的“高于TCP / IP的一级”评论意味着我想要的东西基本上是一个自包含的服务器/客户端。我不想处理编写线程代码,处理每个连接等等。例如,我希望代码看起来像这样:

Server s = new Server(8080);
s.NewConnection += new ConnectionEventHandler(NewConnection);
s.DataRecieved += new DataEventHandler(NewData);
s.Start();

void NewConnection(object sender, EventArgs e)
{
   s.Send((Connection)sender, "Hello World!"); //(Connection)sender is the connection instance so the server knows which to send the response to
}

void NewData(object sender, EventArgs e)
{
   s.Send((Connection)sender, e.Data); //Echo back
}

不是最干净的代码,但我认为它提供了基本的想法。

4 个答案:

答案 0 :(得分:4)

这样的东西现在存在,结帐networkComms.net。您需要的所有内容是否与单声道100%兼容。

免责声明:我是这个商业图书馆的开发者之一。

答案 1 :(得分:1)

不,没有任何开箱即可做你想做的事。

TcpClient / TcpListenr已经比Socket类高一级。如果你真的想要更简单的东西,那么包装TcpListener()并让它公开你想要的事件处理程序入口点是一件非常容易的事。

答案 2 :(得分:1)

你应该看看RemotingLite。我在Mono应用程序中使用它。它的开发是为了帮助分布式计算库MPAPI的网络方面。 MPAPI的目标是与Mono 100%兼容。

答案 3 :(得分:0)

我不清楚你对“比TcpClient和TcpListener更高一级”的类的期望是什么?

TcpClient / TcpListener是您应该用于开发的基本构建块。我不确定Mono中是否也支持它们,但如果它们是,那么它应该就是你所需要的。

.Net CompactFramework也支持这些,但我不确定Mono Touch。