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

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

ただいまの
回答率

89.99%

エラーコードの意味がわからない

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 3,166

Asahi_1115

score 11

1対1通信で1~10の乱数の中からはずれを引くと終了する爆弾ゲームのようなものを作っているのですがサーバ側にでたエラーコードの意味が分からず困ってます

  • error C1083:includeファイルを開けません。 'stdlio.h': No such file or directory(5行目)
  • IntelliSense:ソースファイルを開けません。 "stdlio.h"(5行目)
  • IntelliSense:式は変更可能な左辺値である必要があります (57行目)
  • IntelliSense:';'が必要です。(62行目)

エラーコードの説明とどの辺を手直しすればいいかご助言いただけませんか

サーバ側

#include <stdio.h>
 #include <io.h>//基本入出力関数
 #include <winsock2.h>#include<stdlio.h>//乱数
 #include<time.h>//乱数

#define BUF_LEN 100//入出力バッファサイズ
int main()
10{
    WSADATA wsaData;
    SOCKET sock0;
    struct sockaddr_in addr;
    struct sockaddr_in client;
15    int len;
    SOCKET sock;

    char buf[BUF_LEN];//入出力バッファ

20    // winsock2の初期化
    WSAStartup(MAKEWORD(2, 0), &wsaData);

    // ソケットの作成
    sock0 = socket(AF_INET, SOCK_STREAM, 0);
25
    // ソケットの設定(アドレス構造体の設定)
    addr.sin_family = AF_INET;//インターネットを使用する
    addr.sin_port = htons(12345);//サーバ(自分自身)のポート番号
    addr.sin_addr.S_un.S_addr = INADDR_ANY;//IPアドレスすべての値指定
30
    //ソケットのディスクリプタとアドエス構造体を結びつける
    bind(sock0, (struct sockaddr *)&addr, sizeof(addr));

    // TCPクライアントからの接続要求を待てる状態にする(待ちクライアント数指定)
35    listen(sock0, 5);

    // TCPクライアントからの接続要求を受け付ける
    printf("クライアントからの接続待ち\n");
    len = sizeof(client);
    sock = accept(sock0, (struct sockaddr *)&client, &len);
40
    int s;
    srand(time(NULL)); //1~10のランダムな数
    s = rand()%10+1; //1~10のランダムな数

45    //送受信処理
    do{
        printf("数字を選んでください...。\n");
        memset(buf, 0, sizeof(buf));//送受信バッファ0クリア
        _read(0, buf, sizeof(buf));//キーボードから入力
50        send(sock, buf, sizeof(buf), 0);//送信
        printf("相手が選んでいます...。\n");
        memset(buf, 0, sizeof(buf));
        recv(sock, buf, sizeof(buf), 0);//受信
        printf("相手の選んだ数字→%s\n",buf);
55        

57    } while (buf = s);

    printf("爆発しました\n")
60
    // TCPセッションの終了
62    closesocket(sock);

    // winsock2の終了処理
    WSACleanup();
    return 0;
}


クライアント側

#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <stdio.h>
#include <io.h>//基本入出力関数
#include <winsock2.h>
#define BUF_LEN 100//入出力バッファサイズ
int main()
{
    WSADATA wsaData;
    struct sockaddr_in server;
    SOCKET sock;
    char buf[BUF_LEN];//入出力バッファ

    // winsock2の初期化
    WSAStartup(MAKEWORD(2, 0), &wsaData);

    // ソケットの作成
    sock = socket(AF_INET, SOCK_STREAM, 0);

    // 接続先指定用アドレス構造体の準備
    server.sin_family = AF_INET;//インターネット使用
    server.sin_port = htons(12345);//接続先ポート番号
    server.sin_addr.S_un.S_addr = inet_addr("10.30.20.212");//接続先IPアドレス

    // サーバに接続
    connect(sock, (struct sockaddr *)&server, sizeof(server));

    //受信送信処理
        int n = 1;
    do {
        memset(buf, 0, sizeof(buf));//送受信バッファ0クリア
        printf("相手のが選んでいます...。\n");
        recv(sock, buf, sizeof(buf), 0);//受信
        printf("相手の選んだ数字→ %s\n",buf);
        printf("数字を選んでください...。\n");
        memset(buf, 0, sizeof(buf));//送受信バッファ0クリア
        _read(0, buf, sizeof(buf));//キーボードから入力
        send(sock, buf, sizeof(buf), 0);//送信

    } while (n = 1);

        printf("爆発しました\n")

    // TCPセッションの終了
    closesocket(sock);

    // winsock2の終了処理
    WSACleanup();
    return 0;
}


理想の実行結果
[サーバ側実行]
クライアントからの接続待ち
数字を選んでください
1
相手が選んでいます
相手の選んだ数字
2
爆発しました

[クライアント側実行]
相手が選んでいます
相手の選んだ数字
1
数字を選んでください
2
爆発しました

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+7

error C1083:includeファイルを開けません。 'stdlio.h': No such file or directory(5行目)
IntelliSense:ソースファイルを開けません。 "stdlio.h"(5行目)

"stdlio.h"というファイルが存在しない.きっと"stdlib.h"の間違いだと思う.

IntelliSense:式は変更可能な左辺値である必要があります (57行目)

whileの条件式がおかしい.buf = sは代入文.きっとbuf == sとしたいのだと思う.

IntelliSense:';'が必要です。(62行目)

2行前のprintfの行末にセミコロンがない.

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/07/31 17:49

    辛口かもですが,全部エラー文そのままです.ひょっとして,エラーが出たから特に内容も読まずに考えるのをやめていませんか?

    キャンセル

  • 2017/08/02 21:52

    苦手な部分が多くて少し投げやりになっていたかもしれません。以後気をつけて取り組んでいきます

    キャンセル

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

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る