• 締切済み

チャットプログラミング

簡単な接続型チャットプログラムを作っています。 サーバとクライアントをTCPを使って接続し、1対1でメッセージを送りあうというものなのですが、 自宅にPCが一台しかないのでサーバ、クライアントを同じPCで起動してテストしています。 クライアントで接続相手を指定するとき、自PCのローカルアドレスを入力すると、正常に動作するのですが、 グローバルアドレスを入力すると正しく接続できません。 ポート開放についてはhttp://www.akakagemaru.info/port/tcpport.phpのサイトで確認済みです。 パーソナルファイアウォールの設定も済んでいるはずです。 どこがいけないのでしょうか? <環境> Windows Vista VC++ EE

みんなの回答

  • sho1get
  • ベストアンサー率57% (20/35)
回答No.3

もしルータを使用しているのであれば、NAPT(静的IPマスカレード)が機能しているため、通信できないと思います。 宅内LANではプライベートIPアドレスを使用していますが、インターネットに出ていくときは、グローバルIPアドレスに変換されて出ていきます。 そこで、宅内ルータはプライベートIPアドレスとグローバルIPアドレスの対応表を内部で持ち合わせていますが、宛先を宅内ルータのWAN側に割り当てられたグローバルIPアドレスに指定すると、そのパケットをどのプライベートIPアドレスにルーティングするのかが分からなくなってしまします。 そこで、静的IPマスカレードと言う機能を利用し、インターネット側からのポートXXXX番に送られてきたパケットは自動的にプライベートIPアドレスXXX.XXX.XXX.XXXに転送するという設定をあらかじめしておけばできるかもしれません。 静的IPマスカレード(NAPT)は現在、市販されているルータにも備わっているので、確認してみてはどうでしょう?

  • S117
  • ベストアンサー率40% (18/45)
回答No.2

そもそもそのテストは本当に必要でしょうか。 実際にはあまり想定できない方法のテストですし(エンタープライズ用途のルーターを使う)、自分のルーターから戻ってくるだけですので、インターネットを挟んだテストとは言い難いです。 知人に協力してもらうなりして、実際にインターネット経由のテストをした方がいいでしょう。

kerokk
質問者

お礼

ご回答ありがとうございます。 もっともなご指摘だと思います。 ただ成功するはずだと思ってテストしたら失敗したので、 その原因が知りたかっただけです…。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

多分ルータが安物なのでしょう。 構成は以下のようなものだと思います。 自PC |192.168.0.100 |(ハブなど) |192.168.1.1 ブロードバンドルータ |xxx.xxx.xxx.xxx |(ADSLなど) | ISP | インターネット  ここで、安物のブロードバンドルータはインターネットからのxxx.xxx.xxx.xxxに対するアクセスは192.168.1.100に転送しますが、自PCからxxx.xxx.xxx.xxxへのアクセスは転送してくれません。その機能が無いからです。ネットカフェなどを用いてインターネット側からアクセスしたらつながるという場合はほぼ間違いないでしょう。  YAMAHAのRTX1000などならできます。安いものだと本当にお手ごろ価格(5万円~7万円)で大変お求めやすくなっております(あくまでもエンタープライズ用途に耐えられるレベルの製品として安いという意味です)。  1万ちょっと程度のブロードバンドルータではできないと思いますね。

kerokk
質問者

お礼

ご回答ありがとうございます。 ルータはプロバイダ側が管理しているものを使っているので、詳しいことはわかりませんが、 おそらくそれが原因だと思います。 お手頃価格で5万ですか…。厳しいですね…。

関連するQ&A

  • BBルータCG-BARHXでポート開放しようとして

    CG-BARHXのマニュアルhttp://corega.jp/support/manual/pdf/barhx_a.pdf に従って バーチャルサーバを以下の様に設定しました バーチャル・サーバー :有効 接続先:192.168.2.8 プロトコル:HTTP 入力開始ポート:80 入力終了ポート:80 出力開始ポート:80 出力終了ポート:80 サービス・タイプ:TCP 備考: しかしポート開放の確認サイトhttp://www.akakagemaru.info/port/tcpport.php によりTCP/80の開放確認をすると x.x.x.x の 80 番ポートに接続結果: 80 番ポートは開放されていません のメッセージが出ていて開放されませんでした ちなみにDMZに192.168.2.8を登録して ポート開放の確認サイトhttp://www.akakagemaru.info/port/tcpport.php によりTCP/80の開放確認をすると 開放されていました どうすれば80 番ポートを開放できるでしょうか? ちなみに プロバイダはjcomの12MサービスでOSはfedora18です

  • MIencraftのサーバーのアドレス教えるところ

    こんにちは Minecraft1.9でサーバーを立てたんですが ポート開放を25565と打って調べて 「ポート開放されています」 になってっます サイト→http://www.akakagemaru.info/port/tcpport.php でも友だちにIPv4アドレスを教えたんですが入れないそうです… IPv4アドレスを教えればいいんですよね? それともグローバルなんとかをおしえればいいんですか?

  • ポート開放ができません。PC版COD4

    PC版COD4というパソコンゲームでサーバーをたてるために、28960ポートの解放が必要なのですが どうしても、開放することができません。 以下に私が試したことを書いておきます。 (1)このサイトを元にポート開放の手順を踏みました。 http://www.akakagemaru.info/port/lan-w300nudp.html IPアドレス固定はコマンドプロンプトで調べて、そこに書いてあるもので固定しました。     開放ですが、用語がよくわからなくてここが疑問のままやったのですが、ローカルIPというとこに   コマンドプロンプトで調べたIPアドレスをいれ、TCP,UDP両方の28960ポートを選択して   追加し、更新しました。 (2)ファイアウォールの設定  http://www.akakagemaru.info/port/windows7fw.html    こちらのサイトを参考にして設定しました。  ホームネットワークになっていることを確認して、ファイアウォールの初期化をはかり  サーバを起動し、プライベートネットワークにチェックが入っていることを確認し、アクセスを許可  しました。 (3)ポート開放ができているか確認  http://www.akakagemaru.info/port/tcpport.php    このサイトをもとに、28960と打ち込み、開放の確認をしましたが、開放ができていないことを  いわれました。 これだけのことを自分で試してみていろいろ調べてみたのですが、限界が見えて質問させて 頂きました。 PCの環境  ・イオ光  ・ルータを用いており、デスクトップパソコンに有線接続  ・ウィルス対策ソフトなし(のはずです。) お手数ですが、PCにあまり強くないもので用語とか全然わかりませんので、 分かりやすく丁寧に書いてもらえるとありがたいです。 よろしくお願いします

  • ポート開放できません><

    ポート開放ができません>< フレッツ光 プロバイダーPlala モデム品名GE-PON-ONU ルータ バッファロー BBR-4HG PCはvistaです。 ファイヤーウォール切り セキュリティーソフトなし Plalaのセキュリティーも全部切りました。 http://27bit.com/ipsetting-vista.html まずIPアドレスを上記アドレスのように固定しました。 接続も確認し問題なかったです。 http://www.akakagemaru.info/port/meruko/BBR-4HG.html 次にルータのポート開放で上記アドレスに従ってポート開放を行いました。ポート番号は7777 TCPです http://www.akakagemaru.info/port/tcpport.php 最後にこちらで確認したところポート開放されていませんでした>< いろいろ調べていてPCのIPアドレスを192.168.11.30 サブネット255.255.255.0 デフォルトゲート192.168.11.1 に固定しました。 ルータのIPですが何もいじっていないので載せておきます LAN側IPアドレス 192.168.11.1 サブネット 255.255.255.0 それとその下にDHCPサーバー機能 簡易設定というのがありますがこれは関係あるのでしょうか? 一応使用するになっていて 割り当てIPアドレスが192.168.11.2 から16台となっています。 あとルータ自体の接続状況がPPPoE:Internet(Default)になっていますがこれも関係あるのでしょうか? ご返信・回答いただけると幸いです><

  • ポート開放・しぃお絵かきチャットの設置<NTT西日本>

    はじめまして。 お絵かきチャットの設置のために、何度かポート開放しようとしましたが、どうしても設定が誤っているようでできません。 どうすればよいか、教えていただけないでしょうか。 NTT西日本のフレッツ光プレミアム、マンションタイプを使用しています。 接続は ノートPC(WindowsVista)→CTU→VDSL→モジュラージャックです。 VDSLの種類はVH-100<2>E<EX-N>です。 下のサイトを参考にして開放作業を行いました。 http://www.akakagemaru.info/port/CTU.html コントロールパネルで以下の通りに設定済みです。 IPv4アドレスは192.168.24.51 サブネットマスクは255.255.255.0 デフォルトゲートウェイは192.168.24.1 DHCPサーバ設定でCTUのIPアドレスは192.168.24.1 払い出し開始IPアドレス は192.168.24.51に設定しています。 CTUの設定で、DHCPサーバ機能設定(LAN側固定IP払い出し)メニュー において払い出しIPアドレスはIPv4アドレスの192.168.24.51を入力 MACアドレスは、コントロールパネルで確認したものを入力しました。 静的アドレス変換設定(ポート指定)項目において、プロトコルはTCPを選択しました。 LAN側端末IPアドレスは、192.168.24.51です。 接続先については、接続先1を選択しました。(OCNを設定しています) ポート番号は、80と15000を設定しています。 以上です。これで開放できていないと表示されます。(いくつかの判定サイトで) ファイアウォールについては、CTUの設定、コントロールパネルの設定両方で80,15000を許可しています。 CTU上での設定は以下のページの通りです。(IPのみ192.168.24.51) http://www.akakagemaru.info/port/ctu/0fw.html これ以外に、IEのインターネットオプションをいじるべきでしょうか? また、よくわかっていないのですがIPv6をトンネルで使用している?らしいのですが、無視していいのでしょうか… 以上です、長々こまごまと申し訳ありません。 ほかにも必要な情報(CTU設定画面の画像など)があれば、調べますのでどうか、足りない設定を教えてください。 それでは、失礼いたします。

  • Aterm-WR8300Nでのポート開放方法を教えて下さい

    こんにちは。ポートの開放方法で躓いてしまい、質問させていただきます。 NECのAterm WR8300Nを有線で使用しております。 クイックWEB設定>詳細設定>ポートマッピング設定(PPP)>NATエントリ追加を選び、 [LAN側ホスト]固定したIPアドレス(192.168.0.5) [プロトコル]TCP [ポート番号]anyのチェックを外して[7000]-[7100] [優先度]1 と設定しました。 その後http://www.akakagemaru.info/port/tcpport.phpで7010番や7030番のポート開放をチェックするも開放されていないと出て、ルータの再起動も行ってみましたが変わりません。 IPアドレスは、設定する時に192.168.0.5で繋いでいたため ネットワーク設定>ローカルエリア接続のプロパティ>インターネットプロトコルのプロパティ>を開き 「次のIPアドレスを使う」を選択してIPアドレス192.168.0.5、サブネットマスク255.255.255.0、デフォルトゲートウェイは192.168.0.1、優先DNSサーバーは192.168.0.1、代替DNSサーバー未記入で設定しました。 各数値はコマンドプロンプトでipconfig /allで表示されたものを入力しています。 OSはwindowsXP SP3、セキュリティソフトはMicrosoft Security Essentials、ポート開放テストの時はリアルタイム保護を切って試しました。 何かお分かりになる点などあれば教えていただけませんでしょうか。 どうぞよろしくお願いします。

  • C言語でチャットプログラミングを・・・

    C言語(unix環境)でチャットプログラミングを作りたいのですが、まずは、TCP/IPによるマルチクライアントで簡単なメッセージのやりとりができるプログラムを練習として作りたいと考えています。 そこでサーバにクライアントからメッセージが届いた時点で全クライアントにメッセージを送信(write)し、逐次更新されるようにしたいのですが、クライアント側で常にread関数を呼び出すのは非常に不格好だし、メッセージを入力するといった他の処理ができなくなると思うのです。 何か方法はありますでしょうか? なにぶんネットワークプログラミングは始めたばかりですので初心者向けの解説をお願いします。

  • オラクルWebサイトにつながらない

    オラクル社のWebページ【http://www.oracle.com/lang/jp】に接続できなくて困ってます。他のWebサイトは問題なく接続できるのですが。 なぜかオラクル社のWebページにつながりません。解決方法を教えてください。 環境は、ルーターにAterm WR7610HVを使ってます。 【http://www.oracle.com/lang/jp】に接続しようとした時の通信ログです。 2008/07/18 21:56:45 NAT RX Not Found : TCP 60.172.222.9 : 6000 > 58.183.236.51 : 135 (IP-PORT=8) 2008/07/18 21:59:58 NAT RX-INFO TCP Synchronize Flag OFF : TCP 207.46.73.60 : 80 > 58.183.236.51 : 2574 (IP-PORT=8) 2008/07/18 21:59:59 NAT RX-INFO TCP Synchronize Flag OFF : TCP 207.46.73.60 : 80 > 58.183.236.51 : 2574 (IP-PORT=8) 2008/07/18 22:00:01 NAT RX-INFO TCP Synchronize Flag OFF : TCP 207.46.73.60 : 80 > 58.183.236.51 : 2574 (IP-PORT=8) 2008/07/18 22:00:03 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2586 (IP-PORT=8) 2008/07/18 22:00:03 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2580 (IP-PORT=8) 2008/07/18 22:00:04 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2586 (IP-PORT=8) 2008/07/18 22:00:04 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2580 (IP-PORT=8) 2008/07/18 22:00:05 NAT RX-INFO TCP Synchronize Flag OFF : TCP 207.46.73.60 : 80 > 58.183.236.51 : 2574 (IP-PORT=8) 2008/07/18 22:00:06 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2586 (IP-PORT=8) 2008/07/18 22:00:06 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2580 (IP-PORT=8) 2008/07/18 22:00:10 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2586 (IP-PORT=8) 2008/07/18 22:00:10 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2580 (IP-PORT=8) 2008/07/18 22:00:13 NAT RX-INFO TCP Synchronize Flag OFF : TCP 207.46.73.60 : 80 > 58.183.236.51 : 2574 (IP-PORT=8) 2008/07/18 22:00:18 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2586 (IP-PORT=8)

  • オラクルWebサイトにつながらない

    オラクル社のWebページ【​http://www.oracle.com/lang/jp​】に接続できなくて困ってます。他のWebサイトは問題なく接続できるのですが。 なぜかオラクル社のWebページにつながりません。解決方法を教えてください。 環境は、ルーターにAterm WR7610HVを使ってます。 【​http://www.oracle.com/lang/jp​】に接続しようとした時の通信ログです。 2008/07/18 21:56:45 NAT RX Not Found : TCP 60.172.222.9 : 6000 > 58.183.236.51 : 135 (IP-PORT=8) 2008/07/18 21:59:58 NAT RX-INFO TCP Synchronize Flag OFF : TCP 207.46.73.60 : 80 > 58.183.236.51 : 2574 (IP-PORT=8) 2008/07/18 21:59:59 NAT RX-INFO TCP Synchronize Flag OFF : TCP 207.46.73.60 : 80 > 58.183.236.51 : 2574 (IP-PORT=8) 2008/07/18 22:00:01 NAT RX-INFO TCP Synchronize Flag OFF : TCP 207.46.73.60 : 80 > 58.183.236.51 : 2574 (IP-PORT=8) 2008/07/18 22:00:03 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2586 (IP-PORT=8) 2008/07/18 22:00:03 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2580 (IP-PORT=8) 2008/07/18 22:00:04 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2586 (IP-PORT=8) 2008/07/18 22:00:04 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2580 (IP-PORT=8) 2008/07/18 22:00:05 NAT RX-INFO TCP Synchronize Flag OFF : TCP 207.46.73.60 : 80 > 58.183.236.51 : 2574 (IP-PORT=8) 2008/07/18 22:00:06 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2586 (IP-PORT=8) 2008/07/18 22:00:06 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2580 (IP-PORT=8) 2008/07/18 22:00:10 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2586 (IP-PORT=8) 2008/07/18 22:00:10 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2580 (IP-PORT=8) 2008/07/18 22:00:13 NAT RX-INFO TCP Synchronize Flag OFF : TCP 207.46.73.60 : 80 > 58.183.236.51 : 2574 (IP-PORT=8) 2008/07/18 22:00:18 NAT RX-INFO TCP Synchronize Flag OFF : TCP 65.55.15.125 : 80 > 58.183.236.51 : 2586 (IP-PORT=8)

  • SSHでログイン後にsuできない。

    WindowsからPuTTYを使ってサーバ(FreeBSD7.0)に接続し、rootになろうとしています。 PuTTYを使って、一般ユーザでログインすることはできるのですが、その後、rootになろうとsuコマンドを打つと、以下のようになり、rootになれません。 【PuTTYのコンソール】 $ su Password:(rootのパスワードを入力) su: Sorry $ サーバ側でsshdのログを見ると以下のようになっております。 # /usr/sbin/sshd -ddd : Bind to port 22 on 0.0.0.0 failed: Address already in use. Cannot bind any address. 22番ポートがすでに使用されているかと思い、以下のコマンドを打ってみました。 # sockstat | grep 22 (一般ユーザ) sshd 772 3 tcp4 (サーバのアドレス):22 (クライアントのアドレス):51401 root sshd 769 3 tcp4 (サーバのアドレス):22 (クライアントのアドレス):51401 root sshd 686 3 tcp4 *:22 *:* 上記の2番目で、すでにクライアントからrootで接続しているように見えます。クライアントからは一般ユーザを使用して接続しているのみです。なぜこうなるのか全くわかりません。 この一般ユーザはwheelグループに入れてあり、通常はsuでrootになれると思うのですが、、、 見当違いなのか、また他に原因が考えられるのか、ご教授頂けないでしょうか?

専門家に質問してみよう