2009-09-11 20 views
9

是否有任何Mono(C#)兼容的網絡/套接字庫?單聲道兼容的網絡/套接字庫

優選的東西是:

  • 多線程
  • 事件驅動
  • 能夠多次連接
  • 在Mono和MS .NET運行時處理客戶端和服務器件
  • 奔跑
  • 非常簡單
  • 免費(和可用我ñ商業軟件)

這也將是真正偉大的,如果它是:

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

編輯:

澄清更多,我的意思是我的「一個層次bove 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 
} 

不乾淨的代碼,但我認爲它給出了基本的想法。

+0

你的意思是IP套接字?如果有人不屑於在System.Net和System.Net.Sockets中編寫完整的網絡堆棧,那麼我會感到驚訝。我想可能會有一些包裝庫來添加特定的增強功能,但我想不出一個例子。 – sipwiz 2009-09-11 03:45:51

+1

是的,我的意思是IP套接字。當然,我可以使用標準套接字類,但是每次我都會一遍又一遍地做同樣的事情。我必須再次處理所有多線程/異步的東西* 我只是覺得在這一點上已經基本完成了......我正在尋找比TcpClient和TcpListener高1級的東西。 – 2009-09-11 04:18:55

回答

4

現在存在這樣的東西,結帳networkComms.net。所有你需要的東西,也是100%兼容單聲道。

免責聲明:我是該商業圖書館的開發人員之一。

+0

這個項目全面商業化。有沒有新的選擇? – Sonny 2014-05-14 14:22:55

+1

@Sonny - 如果您對之前的版本感到滿意,那麼它仍然可以在GPL下使用 - http://www.networkcomms.net/download/gpl/ – MarcF 2014-05-14 16:14:16

+0

我無法正常工作。 – Sonny 2014-05-18 18:40:24

0

我不清楚你期望從「TcpClient和TcpListener之上的一個級別」類中得到什麼?

TcpClient/TcpListener是您應該用於開發的基本構建塊。我不確定他們是否也支持單聲道,但如果他們是,那麼它應該是你所需要的。

.Net CompactFramework也支持這些,但我不確定Mono Touch。

+0

「一級以上」我的意思是我不想處理編寫線程代碼,處理多個連接等...看到更新的問題上面... – 2009-09-15 14:10:36

1

不,沒有任何東西可以滿足您的需求。

TcpClient/TcpListenr已經是Socket類的一個級別了。如果你真的想要更簡單的東西,那麼包裝TcpListener()並使它暴露你想要的事件處理入口點是一件非常容易的事情。

+0

奇怪的是,它似乎很奇怪,這hasn已經完成了。每次我做一些使用套接字的東西時,我最終都會重新編寫基本相同的代碼......發現某人已經完成了它並將其打包在一個不錯的庫中。 – 2009-09-16 13:26:44

1

您應該檢出RemotingLite。我使用它與我的Mono應用程序。它的開發旨在幫助分佈式計算庫MPAPI的網絡方面。 MPAPI的目標是與Mono 100%兼容。