DOBON.NET DOBON.NETプログラミング掲示板過去ログ

TCPサーバープログラムについて

環境/言語:[vista]
分類:[.NET]

こんばんは,プログラミング素人です.
TCPサーバープログラム作成についてご教授ください.

TCPサーバープログラムをVB.netで作って,クライアントはteratermで通信します.
http://dobon.net/vb/dotnet/internet/tcpclientserver.html

上記のソースコードで実行(通信)したところ,teratermに1文字入力しただけで
通信が切断されてしまいます.
文字を打った分だけサーバーに表記されるようにするにはどうしたらいいでしょうか?

よろしくお願いします.
無限ループで受信するか、もしデータの最後が分かるのであれば、そのタイミングで受信を終了するということになるかと思います。しかしできれば非同期で受信した方が良いので、

TCPを利用した複数クライアント接続可能なチャットアプリケーションの作成
http://codezine.jp/a/article.aspx?aid=22

の方を参考にしてください。
管理人様

ご返答ありがとうございます.
非同期でプログラムを作ることにしました.
教えてもらったwebを参考に今日1日考えてみましが,
そのままコピーしても,
public shared sub main()
がないためエラーが出ます.
でも,mainに,どういうふうに,なにを書けばいいのかわかりません.
ほんと,素人で・・・申し訳ないですが教えてください.

お願いします.
■No22322に返信(mintoさんの記事)

たぶんサンプルをダウンロードされていないのではないでしょうか?

管理人様

お返事ありがとうございます.
ダウンロードしましたが,ちょっと内容が難しいです.
現在,がんばって理解しています.

たびたび,申し訳ないのですが質問です.
Socket.BeginAcceptメソッドの(AsyncCallback,object)
についてなのですが,

Socket.BeginAccept(new AsyncCallback(AddressOf AcceptCallback),object)

Public Shared Sub AcceptCallback(ByVal ar As IAsyncResult)

上の文のAcceptCallbackに,下の関数のAcceptCallbackを引き渡したいのですが,
どうやったらいいですか?
> Socket.BeginAcceptメソッドの(AsyncCallback,object)
> についてなのですが,
>
> Socket.BeginAccept(new AsyncCallback(AddressOf AcceptCallback),object)
>
> Public Shared Sub AcceptCallback(ByVal ar As IAsyncResult)
>
> 上の文のAcceptCallbackに,下の関数のAcceptCallbackを引き渡したいのですが,
> どうやったらいいですか?

サンプルはご覧いただけましたか?「BeginAccept」で検索すれば、使っている箇所が見つかると思うのですが...。

DOBON.NET | プログラミング道 | プログラミング掲示板