转载:https://zhidao.baidu.com/question/160433286.html 留着怕自己找不着了。
//以下是转载内容:
最后还是自己找到了,就写上来好了,应该有人跟我一样有问题的,貌似要加两个头文件:
第一个:cnaiapi.h
/* cnaiapi.h */
#ifndef _CNAIAPI_H_
#define _CNAIAPI_H_
#if defined(LINUX) || defined(SOLARIS)
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <pthread.h>
#include <unistd.h>
#endif /* defined(LINUX) || defined(SOLARIS) */
#if defined(WIN32)
#include <winsock2.h>
#include "cnaiapi_win32.h"
#endif /* defined(WIN32) */
#include <sys/types.h>
typedef short appnum;
typedef long computer;
typedef int connection;
struct port2sock {
short port;
int sock;
};
#define P2S_SIZE 64 /* number of entries in port to socket map table */
#define LISTEN_Q_LEN 5
appnum appname_to_appnum(char *appname);
computer cname_to_comp(char *cname);
connection await_contact(appnum a);
connection make_contact(computer c, appnum a);
int send_eof(connection c);
void cnaiapi_init(void);
#if defined(LINUX) || defined(SOLARIS)
extern pthread_mutex_t await_contact_mutex, cname_mutex, appname_mutex;
#elif defined(WIN32)
extern HANDLE await_contact_mutex, cname_mutex, appname_mutex;
#endif
#endif /* !defined(_CNAIAPI_H_) */
第二个:cnaiapi_win32.h
/* cnaiapi_win32.h */
#include <io.h>
#define read _read
#define write _write
#define STDIN_FILENO 0
#define STDOUT_FILENO 1
盗链:只有cnaiapi.h没有windows32
/*-------------------------------------------------------------------------------------------*/
*
* Program: echoserver
* Purpose: wait for a connection from an echoclient and echo data
* Usage: echoserver <appnum>
*
*---------------------------------------------------
/* cnaiapi.h */
#ifndef _CNAIAPI_H_
#define _CNAIAPI_H_
#if defined(LINUX) || defined(SOLARIS)
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <pthread.h>
#include <unistd.h>
#endif /* defined(LINUX) || defined(SOLARIS) */
#if defined(WIN32)
#include <winsock2.h>
#include <cnaiapi_win32.h>
#endif /* defined(WIN32) */
#include <sys/types.h>
typedef shortappnum;
typedef longcomputer;
typedef intconnection;
struct port2sock {
shortport;
intsock;
};
#define P2S_SIZE 64 /* number of entries in port to socket map table*/
#define LISTEN_Q_LEN 5
appnumappname_to_appnum(char *appname);
computercname_to_comp(char *cname);
connectionawait_contact(appnum a);
connectionmake_contact(computer c, appnum a);
intsend_eof(connection c);
void cnaiapi_init(void);
#if defined(LINUX) || defined(SOLARIS)
extern pthread_mutex_t await_contact_mutex, cname_mutex, appname_mutex;
#elif defined(WIN32)
extern HANDLE await_contact_mutex, cname_mutex, appname_mutex;
#endif
#endif /* !defined(_CNAIAPI_H_) */