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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

TCP

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

Q&A

解決済

2回答

853閲覧

C言語 TCPでの接続で違うPCと接続するためには?

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

TCP

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

0グッド

0クリップ

投稿2020/11/07 08:23

MAC端末内でC言語のTCPのクライアントとサーバーによるブラックジャックゲームを作成したのですが、
同じマック内で実行する場合はgccでコンパイルを通し、 ./クライアント localhost
でクライアント側の引数に接続先を入れるのですが、離れた友達とそのゲームをするためにするには引数にIPアドレスを入れなければならないと思うのですが、自分のIpアドレスは何を参照したらいいのでしょうか?
自分のWIFIのIPアドレスを相手に入れてもらってもつながりませんでした。

そもそもこの接続自体できないのでしょうか?
ちなみに相手も同じMACです。
教えていただけるとありがたいです。

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

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

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

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

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

pepperleaf

2020/11/07 08:43

WiFiに接続しているとの事ですが、その時の IPアドレスはどうなっていますか? 多分、 192.168.xx.xx とかではないでしょうか。とすると、そのIPアドレスは、WiFiに接続された範囲のみで有効なアドレスです。外からは見る事ができません。 そして、ここをクリアしても、WiFiの接続がどうなってるか?  多分、自宅とかで契約しているプロバイダかと思います。とすると、こちらもプロバイダ内でのアドレスとなります。
退会済みユーザー

退会済みユーザー

2020/11/07 09:23

ご回答ありがとうございます。 同じWIFI内であれば接続可能なのでしょうか?
guest

回答2

0

ベストアンサー

###インターネット(ルータの外部)を経由するかで大きく違います。
なお、共通してPCのファイアウォール設定の確認が必要です。

  1. ルータを跨がない場合(又は単にスイッチングハブとして跨ぐ場合)

単純に相手側のPCのIPアドレスを入力すればいいです。ipconfigコマンド等で調べられます。

  1. インターネットを経由する場合

インターネット側から見た相手側PCのIPアドレスを入力しなければなりません。例えばこのWebサービスで調べることができます。さらに、ルータのフォワーディング設定(外部からの接続要求をPCに転送すること)が必要です。

投稿2020/11/07 14:20

HogeAnimalLover

総合スコア4830

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

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

HogeAnimalLover

2020/11/07 14:21

ああ、マックだとipconfigコマンドでなくifconfigコマンドですかね。
退会済みユーザー

退会済みユーザー

2020/11/09 03:46

ご回答ありがとうございます。 同じWIFI内であれば接続可能なのでしょうか?
HogeAnimalLover

2020/11/10 14:20

はい。同じWIFI内というのは同一サブネットに属するという意味なら上記のケース1に当たります。
guest

0

そもそもport forwardingが必要です。一般に無制限に通信がやり取りできるとセキュリティ上の問題があるため、外部から見た時にportが閉じられています。またIPv4の特性上、WANから来た通信をLANの特定の端末に流さなければなりませんが、そういう通信先の書き換えをルーターにやって貰う必要があります。この設定がport forwardingと呼ばれるものです。お使いのルーターの取扱説明書を参照してください。

またお使いのOSのファイアウォールによってせっかく自身の端末に来た通信が遮断されていまいます。なのでファイアウォールでポート開放する必要があります。

投稿2020/11/07 08:40

yumetodo

総合スコア5850

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

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

pepperleaf

2020/11/08 00:44

この辺の話もあるかと思いますが、質問からすると、それ以前ではないかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問