TCP接続について


やくも  2004-04-03 14:56:51  No: 82834  IP: [192.*.*.*]

TCPプロトコルで接続をやろうと思っているんですが、
RemoteHost のところで、
コンピュータ名やIPアドレスを指定すると接続できるのに、
URLを指定すると、接続できません。
ソースは以下のとおりです。

Private Sub cmdSetsuzoku_Click()
    TCPC.Close    
    TCPC.RemoteHost = "URL"   
    TCPC.RemotePort = 1001    
    TCPC.Connect    
End Sub

ちなみにUDPプロトコルで、
RemoteHost をURLを指定すると接続できたので、
URLの間違いではないと思うんですが、どうしてなんでしょうか?

編集 削除
吉野家の豚丼  2004-04-07 10:59:40  No: 82835  IP: [192.*.*.*]

TCPPCがなんのコンポーネントか書いていただかないと、答えられないような
気がします。

編集 削除
うにぃ  2004-04-07 18:26:49  No: 82836  IP: [192.*.*.*]

Winsockコントロールのことだとして書きます。

RemoteHostプロパティにURLは指定できません。
UDPプロトコルで接続が確認できたとのことですが、どのように確認されたのでしょうか?

編集 削除
やくも  2004-04-08 23:02:50  No: 82837  IP: [192.*.*.*]

説明不足で申し訳ありません。
TCPCはWinsockコントロールのことです。

UDPプロトコルで接続が確認できたとのことですが、
どのように確認されたのでしょうか?

UDPプロトコルで、RemoteHostプロパティにURLを指定し、
"チャット" アプリケーションを作成し、
互いに文字の送受信ができましたが、
TCPプロトコルでは、接続できませんでした。

編集 削除
うにぃ  2004-04-09 09:46:21  No: 82838  IP: [192.*.*.*]

失礼しました
URLでもOKですね。勘違いしてました。
#正確にはURLではないのですが。

確認したいのですが、URLはどのようなURLを指定しているのでしょうか?

編集 削除
やくも  2004-04-10 02:08:35  No: 82839  IP: [192.*.*.*]

ダイナミックDNSで取得したURLです。
ちなみに、グローバルIPアドレスをRemoteHostに、
設定してもダメでした。やっぱり、無理なんでしょうか?

編集 削除
奈々氏  2004-04-10 05:58:40  No: 82840  IP: [192.*.*.*]

接続できないってエラーメッセージか何かでてますか?
あるいはセキュリティー関係の設定でブロックしているとか・・・

編集 削除
やくも  2004-04-10 16:41:06  No: 82841  IP: [192.*.*.*]

文字を送信しようとすると、
「指定したトランザクションまたは要求のプロトコル
または接続状態に問題があります。」とエラーメッセージがでます。
セキュリティー関係の設定でブロックしているとは
どういうことなんでしょうか?
初心者な者ですみません。

編集 削除
奈々氏  2004-04-12 03:27:34  No: 82842  IP: [192.*.*.*]

うろ覚えですが、たしかTCPは接続と送信はコード上で区別していて、
UDPはコネクションレスでデータを送信できたような・・・
あっつまり、UDPで通信できたプログラムのプロトコル設定をそのまま
TCPに置き換えただけじゃ動かないので、TCPプロトコル用にプログラムが
直っているかを見た方がいいです。

ちなみにセキュリティー関係を指摘したのは、Firewallソフトやルータが
接続をブロックしていることもある(環境による)ので、その場合はFirewall
を経由させないように接続状態を見直すしかないです。

編集 削除
うにぃ  2004-04-12 11:06:29  No: 82843  IP: [192.*.*.*]

>ちなみに、グローバルIPアドレスをRemoteHostに、
とありますが、最初の投稿で
>コンピュータ名やIPアドレスを指定すると接続できるのに、
となっていましたが、
最初の投稿の接続できたIPアドレスと、その後の接続のできなかったグローバルIPアドレスは違うものと考えていいですか?
その場合、接続のできたIPアドレスはローカルのIPアドレスですか?
また指定したURLはDDNSで取得したものとのことですが、たとえば
Winsock1.RemoteHost = "www.example.co.jp"
のようにドメインを指定しているんですよね?

それからTCPとUDPについてはご存知でしょうか?
もしご存知ない場合は勉強をされてからプログラムをされたほうがいいと思います。
#とはいいつつも私もまだ勉強中の身でして。

編集 削除
やくも  2004-04-12 21:41:02  No: 82844  IP: [192.*.*.*]

奈々氏さんうにぃさん返答ありがとうございます。
接続のできたIPアドレスはローカルのIPアドレスのことです。

>Winsock1.RemoteHost = "www.example.co.jp"
>のようにドメインを指定しているんですよね?
そうです。

>それからTCPとUDPについてはご存知でしょうか?
TCPとUDPでのプロトコルの違いは理解しているつもりです。

編集 削除
奈々氏  2004-04-13 02:38:04  No: 82845  IP: [192.*.*.*]

>文字を送信しようとすると、
>「指定したトランザクションまたは要求のプロトコル
>または接続状態に問題があります。」とエラーメッセージがでます。

TCPでデータを送信する場合、送信前にコネクションを確立しないと
送信できませんよね。
エラーが起きているのは送信時でなくて、接続時にコネクションが確立
できていないのではないですか?
まずStateプロパティの値が0(sckConnected)になっているか確認してみて
ください。

編集 削除
うにぃ  2004-04-13 10:28:49  No: 82846  IP: [192.*.*.*]

まず始めに。
ローカルIPアドレスを指定した場合には接続ができているとのことなのでプログラムに問題はないのではないかと考えられます。
おそらくネットワークの問題ではないでしょうか。

テストされている環境は、どの様なネットワークの構成になっていますでしょうか?
通信の相手は同一ネットワークのPCですか?それとも自PCですか?

気になるのはUDPの時は接続ができた、ということなのですが。

編集 削除
やくも  2004-04-14 00:52:41  No: 82847  IP: [192.*.*.*]

自PCです。

編集 削除
岡田 之仁  2004-04-14 08:59:12  No: 82848  IP: [192.*.*.*]

ええ〜と・・・
ダイナミックDNSで取得したとありますが、では、通信相手は
インターネット越しのブロードバンドルータを超えたLAN側の
マシンと言うことですか?

自PC側だけではなく、相手側の問題も考えられます。

で、TCPがダメでUDPはOK・・・とありますが、その部分
は、ただ単にルータのフィルターかファイアウォールの設定で、
ご使用になっているポートの設定が、UDPはブロックされてい
ないが、TCPはブロックされていた・・・

と言うことではないでしょうか?

ネットワークの構成と各々のルータの設定が解らないと完全な
解決にはならないと思います。

ご検討下さい。

以上。

編集 削除