0

質問にあるように、次のコードに問題があります。

#pragma once
#include "includes.h"
#include "buffer.h"


class CSocket
{
    bool udp;
    int format;
    char formatstr[30];
    static sockaddr SenderAddr;
    int receivetext(char*buf, int max);
public:

    SOCKET sockid;
    CSocket(SOCKET sock);
    CSocket();
    ~CSocket();
    bool tcpconnect(char*address, int port, int mode);
    bool tcplisten(int port, int max, int mode);
    CSocket* tcpaccept(int mode);
    char* tcpip();
    void setnagle(bool enabled);
    bool tcpconnected();
    int setsync(int mode);
    bool udpconnect(int port, int mode);
    int sendmessage(char*ip, int port, CBuffer* source);
    int receivemessage(int len, CBuffer*destination);
    int peekmessage(int size, CBuffer*destination);
    int lasterror();
    static char* GetIp(char*address);
    static int SockExit(void);
    static int SockStart(void);
    static char* lastinIP(void);
    static unsigned short lastinPort(void);
    static char* myhost();
    int SetFormat(int mode, char* sep);
};

Code::Blocks を使用しています。ビルド時に次のエラーが発生します。

/home/nick/Desktop/39dylibsource/Base Code/39dll/socket.h|15|error: ‘SOCKET’ does not name a type|
/home/nick/Desktop/39dylibsource/Base Code/39dll/socket.h|16|error: expected ‘)’ before ‘sock’|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|16|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|25|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|34|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|43|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|50|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|59|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|66|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|74|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|85|error: expected constructor, destructor, or type conversion before ‘(’ token|
||=== Build finished: 11 errors, 0 warnings ===|

参照されている includes.h に以下を含めました。

#include <sys/socket.h>
#include <sys/types.h>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>

ディレクティブまたはライブラリがありませんか? SOCKET のスペルが違う?どんなイルミネーションもいいですね!

4

1 に答える 1

1

ソケット ファイル記述子は単なる整数です。したがって、コード内で にSOCKET置き換えるか、 . (前にどこで見たのかわかりませんが、標準ではありません。)inttypedefSOCKET

于 2012-07-07T03:38:35.743 に答える