C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: socket.connect()での初回例外


(過去ログ 109 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■64729 / inTopicNo.1)  socket.connect()での初回例外
  
□投稿者/ moimoi (1回)-(2012/12/25(Tue) 12:16:56)

分類:[.NET 全般] 

初心者ですがよろしくお願いします。
現在、以下のようなプログラムを作成しサーバにデータを送信しようとしています。
serversocket.Connectのあとに20秒の待ち時間を入れることによってとりあえずデータをサーバ側に受信させることはできたのですが
「System.ObjectDisposedException' の初回例外が System.dll で発生しました。」と表示され、ループが止まってしまいます。

serversocket.Connect(serverEndPoint);のところに
「破棄されたオブジェクトにアクセスできません。オブジェクト名 'System.Net.Sockets.Socket' です。」
と表示されています。どのように改善すればよろしいでしょうか?


Socket serversocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
while(true)
{
serversocket.Connect(serverEndPoint);
Thread.Sleep(20000);
Console.WriteLine("サーバと接続しました");

string sendMsg = "省略";

byte[] buffer = Encoding.UTF8.GetBytes(sendMsg);

serversocket.Send(buffer);
serversocket.Close();

Thread.Sleep(5000);
}
引用返信 編集キー/
■64730 / inTopicNo.2)  Re[1]: socket.connect()での初回例外
□投稿者/ ヤザキ (1回)-(2012/12/25(Tue) 12:26:31)
もしかして、serversocket.Close()したためにserversocketが破棄されているのではないでしょうか?
具体的になにをやりたいのかは判りかねますが、serversocket.Close()をループの外に出したらとうでしょうか?
(または、もし、ロープ内でCloseしてから再度接続したいのなら、ループ内でserversocketを新しいインスタンスでnewするとか)
引用返信 編集キー/
■64731 / inTopicNo.3)  Re[2]: socket.connect()での初回例外
□投稿者/ moimoi (2回)-(2012/12/25(Tue) 13:01:48)
No64730 (ヤザキ さん) に返信
> もしかして、serversocket.Close()したためにserversocketが破棄されているのではないでしょうか?
> 具体的になにをやりたいのかは判りかねますが、serversocket.Close()をループの外に出したらとうでしょうか?
> (または、もし、ロープ内でCloseしてから再度接続したいのなら、ループ内でserversocketを新しいインスタンスでnewするとか)

ヤザキさん回答ありがとうございます。
ループ内でインスタンスを作成すると無事に成功いたしました。
迅速な回答ありがとうございました、助かりました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -