WindowsPC同士でSocket通信をしてみる

WindowsPC同士でSocket通信をしてみるという話です。

2つのPCを使うのは勿論、1つのPCでクライアントとサーバを実現することも可能です。

参考にしたサイトはこちら

⇒Client と Server でゲーム情報の送受信

 

まずは環境

「この環境でなければSocket通信はできない!」というわけでは無いですが、もしどうしても実行ができない場合は私の環境との違いが原因かもしれませんので、参考程度に。

  • OS : Windows10
  • IDE : Visual Studio 2015

 

サーバ側のプログラム

まずはソースコード

基本的にコメントアウトで全体の処理の流れは書いてあるのでそこを参考にしてください。

 

 

クライアント側のプログラム

こちらもソースコードから。

IPアドレス作成部分では、最初のdefineでIPアドレスを途中まで指定して、端末ごとに割り振られた部分のみを指定するパターンと、すべて入力するパターンと用意しました。

デフォルトではIPアドレスを全て入力(0.0.0.0のような)をするようになっています。

 

エラーが出た場合

実行時にエラーが出た場合は、Visual Studioの場合は

プロパティ(Alt + Enter) > 構成プロパティ > リンカー > 入力 > 追加の依存ファイル

から、「ws2_32.lib」を追加することで解決するエラーが多いです。(ライブラリの追加)

あとは、getchを_getchに。

scanfをscanf_sとかにすることで解決するエラーが出ることも。

エラーコードを読んで対応してもらえば大丈夫かと思います。

 

IPアドレスを調べる

コマンドプロンプトを開いて、

と入力して実行。すると、IPアドレスが表示されます。

沢山あって、どれがどれだか…と思うかもしれませんが、

Wi-Fiをつなげている方は「Wireless LAN adapter Wi-Fi」の「IPv4アドレス」を、有線LANであれば、「イーサネット アダプター イーサネット」の「IPv4アドレス」を見てもらえればと思います。

私のPCではそうでしたが、OSやネットワークへの接続方法で違うかもしれません…

見つけたIPアドレスはコピーしておいてください。

 

実行してみる

サーバ側は普通に実行してもらって大丈夫です。

※「ファイヤーウォールが~」みたいな警告が出たら、許可してもらってOKです!

 

クライアント側はコマンドライン引数を使用しているため、コマンドプロンプトから実行ファイルのあるディレクトリまで移動してください。

Visual Studioで作成された場合、実行ファイルは「Debug」というフォルダ内にあります。

サーバの起動を確認したら、

と記述して実行してください。

IPアドレスの部分には、別のパソコンのサーバに送る場合は、そのIPアドレスを。

自分のパソコン同士で行う場合は自分のIPアドレスを入れてもらえば大丈夫です。

 

実行すると送信内容の部分がサーバ側で表示されるかと思います。

 

私の場合は以下のようになりました。

クライアント側(コマンドプロンプト)

 

サーバ側(コンソール)

 

ここで、サーバ側に文字を入力すると、クライアント側に返信されます。

これで、今回のブログは終了です。

何か問題等あればTwitterまでお尋ねください!

 

今回のブログ曲

今回投稿中に聴いていた曲はこちら!

カテゴリー: C言語

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です