アプリ版:「スタンプのみでお礼する」機能のリリースについて

環境:Windows2000とWindows2000(サーバに見立てて)

WinScok2にてサーバソケットAPを作ったのですが、
クライアントからの接続でタイムアウトエラーになります。
以前にPC側APとサーバAPでポートが同じでなければいけないと言われ修正したのですが、まだ接続できません。
以前の方にも言われたのですが、サーバAPを起動後にプロンプトからtelnet (リスンされたIP) (ポート番号)で起動すると、接続に失敗しました。とメッセージが表示されます。

サーバAPはaccept()で待っている状態です。

何か洩れている箇所があるのでしょか?

A 回答 (3件)

まずは、サーバ側APに問題があるのか、クライアントAPに問題があるのか切り分けるのが早道でしょう。



サーバAPなるものを起動した状態で、サーバ側のコマンドプロンプトから、
netstat -a
と打ってみてください。以下のようなリストが表示されるはずです。

C:\Documents and Settings\tamamori>netstat -a

Active Connections

Proto Local Address Foreign Address State
TCP Sirius:epmap Sirius:0 LISTENING
TCP Sirius:microsoft-ds Sirius:0 LISTENING
TCP Sirius:1025 Sirius:0 LISTENING
TCP Sirius:1027 Sirius:0 LISTENING
TCP Sirius:3541 Sirius:0 LISTENING
TCP Sirius:5000 Sirius:0 LISTENING
  :
  :
  :

このリストに、あなたのサーバAPがlistenしているはずのポート番号は表示されていますか?
(注意:80などのwelknown portは、httpなどのようにプロトコル名で表示されます。)

ここまでOKなら、サーバAPは目的通り、accept()待ちになっていると考えて良いでしょう。

次に、同じくサーバ側のコマンドプロンプトから、
telnet localhost ポート番号
と打ってみてください。

つながりますか?
というか、繋がるはずです。

ここまできたら、疑うのはクライアント側APまたは、クライアントマシンとサーバマシンを繋いでいる部分です。(ハード的に部分とソフト的な部分があります。)

参考まで。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ポート番号が違うため、接続できませんでした。

お礼日時:2003/09/10 14:23

>PC側APとサーバAPでポートが同じでなければいけないと言われ


そんなことはないですよ。
Listenポートは指定しますが、クライアント側は、OSから割り当てられたものを
使うのが普通のやり方です。そうしないと困ることがあるはずです。
(Webサーバを稼動させていると、Webクライアントになれないとか...)

>telnet (リスンされたIP) (ポート番号)で起動すると、接続に失敗しました
accept以前に問題がありそうですね。
ソケットの生成(socket)、バインド(bind)、listen でエラーは出ていませんか?
http://www.katto.comm.waseda.ac.jp/~katto/Class/ …

参考URL:http://www.katto.comm.waseda.ac.jp/~katto/Class/ …
    • good
    • 0
この回答へのお礼

ありがとうございます。
ポート番号が違うため、接続できませんでした。

お礼日時:2003/09/10 14:23

待つのはlisten()では?

この回答への補足

デバックで見る限りではacceptのような気がします。

補足日時:2003/09/10 14:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!