TCP接続について


やくも  2004-04-03 23:56:51  No: 82834

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 19:59:40  No: 82835

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


うにぃ  2004-04-08 03:26:49  No: 82836

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

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


やくも  2004-04-09 08:02:50  No: 82837

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

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

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


うにぃ  2004-04-09 18:46:21  No: 82838

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

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


やくも  2004-04-10 11:08:35  No: 82839

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


奈々氏  2004-04-10 14:58:40  No: 82840

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


やくも  2004-04-11 01:41:06  No: 82841

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


奈々氏  2004-04-12 12:27:34  No: 82842

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

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


うにぃ  2004-04-12 20:06:29  No: 82843

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

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


やくも  2004-04-13 06:41:02  No: 82844

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

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

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


奈々氏  2004-04-13 11:38:04  No: 82845

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

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


うにぃ  2004-04-13 19:28:49  No: 82846

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

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

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


やくも  2004-04-14 09:52:41  No: 82847

自PCです。


岡田 之仁  2004-04-14 17:59:12  No: 82848

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

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

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

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

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

ご検討下さい。

以上。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加