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

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

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

Socketのタイムアウト値

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

■91677 / inTopicNo.1)  Socketのタイムアウト値
  
□投稿者/ Sasaki (1回)-(2019/07/19(Fri) 15:04:10)

分類:[Java] 

2019/07/19(Fri) 15:06:54 編集(投稿者)
「SocketのInputStream、OutputStreamのタイムアウト値を個別に設定する方法」について、教えていただけないでしょうか。

サーバー側のソケットで、クライアントからの
受信(InputStream)は無限に待ちつづけ、
送信(OutputStream)のみタイムアウト値を設定することは可能でしょうか?
Java1.4を利用して、以下のようにSocket接続をしているのですが、Socket#setSoTimeoutでタイムアウト値を指定すると、
データの送受信がないときにソケットが閉じられてしまいます。
入力処理は無限に待ち続け、出力処理のみタイムアウト値を設定することは可能でしょうか?

ServerSocket serverSocket = new ServerSocket(0);	// portが使用中のときはBindExceptionが発生する。
Socket socket = serverSocket.accept();			// ブロッキングされる(クライアントからの通信開始要求が来るまで待機)
socket.setSoTimeout(5 * 1000);				// タイムアウト値を5秒に設定

InputStream inputStream = new BufferedInputStream(socket.getInputStream());
OutputStream outputStream = new BufferedOutputStream(socket.getOutputStream());

追伸:
	ウェブサーバーのように(HTTP1.1のKeep-Aliveように)、
	クライアントからの受信を待ちつつ、こちらから送信できない相手は切断するといった仕組みは、
	どのように実装するべきでしょうか?

よろしくお願いします。

引用返信 編集キー/
■91742 / inTopicNo.2)  Re[1]: Socketのタイムアウト値
□投稿者/ Sasaki (3回)-(2019/07/26(Fri) 20:17:41)
他サイトで再度質問するため、クローズいたします。
ありがとうございました。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ