2009-09-11 3 views
9

Mono(C#)互換のネットワーク/ソケットライブラリはありますか?あるモノラル対応ネットワーク/ソケットライブラリ

好ましくは何か:

  • マルチスレッド
  • イベントドリブン複数の接続モノラルとMS .NETランタイム上
  • 処理するクライアントとサーバの作品
  • ランの可能
  • 非常に簡単
  • 無料それがあった場合、それはまた、本当に素晴らしいことだ

nは商用ソフトウェア):

  • .NET Compact Frameworkは(ウィンドウズモバイル)互換
  • MonoTouchで(iPhone)対応

編集:

もっと明確にするために、私が「1つのレベル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

+1

はい、私はIPソケットを意味します。もちろん、私は標準のソケットクラスを使うことができますが、毎回同じことが何度も繰り返されます。この時点では、基本的に既に完了していると考えています...私はTcpClientとTcpListenerの1レベル上のものを探しています。 –

答えて

4

このようなものは現在ありません、チェックアウトnetworkComms.netです。あなたが必要とする物のすべてを持っていて、モノと100%互換性があります。

免責事項:私はこの商用ライブラリの開発者の1人です。

+0

このプロジェクトは完全に商業化されました。新しい選択肢はありますか? – Sonny

+1

@ソニー - もしあなたが以前のバージョンに満足していれば、それはまだGPLの下で利用可能です - http://www.networkcomms.net/download/gpl/ – MarcF

+0

私はそれを働かせることができません。 – Sonny

0

「TcpClientとTcpListenerの1つ上のレベル」のクラスから正確に何が期待されるのかはっきりしませんか?

TcpClient/TcpListenerは、開発に使用する基本的なビルディングブロックです。モノでもサポートされているかどうかはわかりませんが、そうであれば、必要なだけのものになるはずです。

.Net CompactFrameworkでもこれらをサポートしていますが、Mono Touchについてはわかりません。

+0

"1つ上のレベル"とは、スレッドコードの作成、複数の接続の処理などを扱いたくないということです。上に更新された質問を参照してください... –

1

いいえ、あなたが望むことをするボックスは何もありません。

TcpClient/TcpListenrはすでにSocketクラスの1レベル上にあります。本当にもっと単純なものが本当に必要な場合は、TcpListener()をラップして、必要なイベントハンドラのエントリポイントを公開するのは非常に簡単な作業です。

+0

奇妙なこと...ちょっと変わったようです既に行われている。私がソケットを使用する何かをするたびに、私は基本的に同じコードをもう一度書いてしまいます。誰かがすでにそれをして、それを素敵なライブラリにパッケージングしていたと考えました。 –

1

RemotingLiteをチェックしてください。私はMonoのアプリケーションで使用します。これは、Distributed Computing Library MPAPIのネットワーキングの側面を支援するために開発されました。 MPAPIはMonoと100%互換性があるという目標を持っていました。