質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

Q&A

3回答

1006閲覧

TCPソケット通信で、接続しにいく前に相手方の接続が切断されていることを確認することは可能?

circular2016

総合スコア52

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

0グッド

0クリップ

投稿2021/08/19 23:20

とある外部装置とのTCPソケット通信の仕様を考えています。

ソケット接続を行う前に、多重接続とならないように、相手方が切断(disconnect)状態であることを確認してから接続を行おう、という話が出ています。

しかし、
**「TCPの仕様上、接続先がコネクションをcloseしているかは、何かしらのパケットを一度は実際に送るまでは確認できない」**ということがGoogle検索結果で出てきました。

接続前に切断確認はできないので、まずはとにかく接続するしかないのではと思っています。

この認識に間違いはないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

考えがおかしな方向に進んでいる気がします。

接続に行くと言うことは相手側がTCPサーバーなのでしょうが、目的のサーバー処理と別に、監視機能的なサーバープロセスを作りそこに接続して監視プロセスから目的プロセスの接続状態をチェックして返すという作りにすることは可能ですが、あまり意味無い気がします。
相手の状態を知って、それによってどのように処理を変えるかとか考えてないのでは?

投稿2021/08/20 03:04

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

接続前に切断確認はできないので、まずはとにかく接続するしかないのではと思っています。

切断確認とは一体なんですか?ポートがCloseであることの確認ですか?であれば、接続要求を行い、この応答を元に推測(断定ではない)可能です。もっとも、相手がCloseならば接続不可能となりますから、この時点で目標を達成しているわけですが。

アプリケーションレイヤで接続確認するならば例えばこのような形です。

サーバ側は受付ポートXと実際の通信ポートYをもつ。Xは固定的(クライアント側に広報して良い)であり、Yは都度都度ランダムに決定するものとする。

クライアントはポートX宛に要求を行い、サーバはこれを受理した場合にポートYを用意する。また、パスワードをランダムに発行し、ポートYの情報とパスワードをクライアントに送る。以降、ポートYを用いてデータ送受信を行う。逆に、要求を受理できない場合はエラー応答する。

投稿2021/08/20 00:19

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

相手に問い合わせもしないで状態を取得する方法は無いと思います。

PortをListenしているかも、何かを投げてみないと分かりません。

投稿2021/08/19 23:51

ishina_yum

総合スコア509

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問