- PR -

C#でのテキストの通信

投稿者投稿内容
tomox
会議室デビュー日: 2006/07/15
投稿数: 4
投稿日時: 2006-07-15 11:51
お世話になっております。
Visual C#.NETを使っているのですが,ネットワークについて質問があります。
プログラムを2つ作り,片方のプログラムを送信側,もう片方を受信側とし,
送信側にテキストデータを入力し,ボタンをクリックすると受信側へ
そのデータが表示されるような単純なプログラムはどのようにして作るのでしょうか。
紹介しているサイトなどもあればよろしくお願いします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-07-15 12:22
こんにちは。

どぼん!さんが System.Net.Sockets 名前空間 のクラスを使って通信プログラムを作成する記事を書いておられます。
TCPクライアント・サーバープログラムを作成する
TCPを利用した複数クライアント接続可能なチャットアプリケーションの作成

記事は .Net Framework 1.1 が前提になっていますが、2.0 を使うとしても参考になると思います。

*追記
System.Net.Sockets 名前空間 の URL が間違っていたので訂正しました。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for Microsoft Office System - Microsoft Office System
(Jul 2006 - Jun 2007)
Hello Another World!

[ メッセージ編集済み 編集者: ue 編集日時 2006-07-15 17:40 ]
tomox
会議室デビュー日: 2006/07/15
投稿数: 4
投稿日時: 2006-07-15 17:25
ueさん,ありがとうございます。
「TCPクライアント・サーバープログラムを作成する」では,コンソール
プログラムで行っています。
私が言ったのは,「ボタンを押したら」です。
実際にボタンを押すと動くように書き換えましたが,フリーズして動かなくなりました。

「TCPを利用した複数クライアント接続可能なチャットアプリケーションの作成」では,
あまりにも複雑すぎます。
よろしくお願いします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-07-15 18:12
ueです。

引用:

「TCPクライアント・サーバープログラムを作成する」では,コンソール
プログラムで行っています。
私が言ったのは,「ボタンを押したら」です。
実際にボタンを押すと動くように書き換えましたが,フリーズして動かなくなりました。


「ボタンを押したら」というのは Windows Forms のアプリだということですよね?
手元の Visual Studio 2003 + C# で試してみましたが、TCPクライアント・サーバープログラムを作成する のサンプルを Windows Forms アプリに書き換えたらコーディングした通りに動きましたよ(当たり前か)。

フリーズしたのではなくて、同期で動くプログラムがフリーズしたように感じるだけだと思います。

_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-07-15 20:19
つまり,tomoxさんが作ろうとしてるプログラムと全く同じモノが無いと駄目なんですか?

単純なアプリならTcpClientクラスとTcpListenerクラスのほうがお手軽ですよ。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-07-16 02:59
引用:

tomoxさんの書き込み (2006-07-15 17:25) より:

私が言ったのは,「ボタンを押したら」です。



この場合、ボタンを押したら〜するって動作は質問の主題ではありませんよね。
何かのタイミングで、データを送信して、それが送信先に届くことが目的なのではないでしょうか。

引用:

tomoxさんの書き込み (2006-07-15 17:25) より:

実際にボタンを押すと動くように書き換えましたが,フリーズして動かなくなりました。


まずは、実際にボタンを押すと「動く」ように書き換えてみましょうよ(^^)
そのために生じた「不明な点」について、質問してみるのが良いと思いますよ。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-07-16 06:06
引用:

tomoxさんの書き込み (2006-07-15 17:25) より:

実際にボタンを押すと動くように書き換えましたが,フリーズして動かなくなりました。


VisualStudioを使用しているなら、ステップ実行しながら
どこで処理がとまっているかを確認してみるといいと思います。

で、できるならその部分を別スレッドで動かしてあげるとか、
他のイベントを受け取れるように設定してあげるとかいろいろありますよね
YAS
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 59
投稿日時: 2006-07-16 22:22
送信する文字列が短いのならUDPの方が簡単に作れると思います。
ただ,UDPは確実に届いたかどうかの保証がありませんが...
LAN内だけでよいなら,ほぼ確実にとどくようなのでUDPがおすすめです。

スキルアップ/キャリアアップ(JOB@IT)