在vs2010 上面倒是可以编译的源代码,但是换到2008上,编译就出现了如下错误信息。
“sockaddr_in”: 未声明的标识符
百度谷歌了半个小时多,真烦哪,没找到错在哪里。
包含的头文件是windows.h
最后还是有了结果,就是 在 sockaddr_in 的前头 加上 struct.
还有错误
error C2275: “SOCKET”: 将此类型用作表达式非法
将其放到函数的前头,即WSAStartup(MAKEWORD(2,2),&ws); 之前就可以了。
几乎把所有变量声明都放到了最前端,不过一般的情况下似乎不需要这个样子的。中间声明变量不可以么?有人说可以,有人说不可以。
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#pragma comment(lib,"ws2_32.lib")
int main(){
SYSTEMTIME sys;
WSADATA ws;
int ret =0;
SOCKET sListen;
SOCKET s;
SOCKET sClient;
fd_set allSocketSet;
fd_set readSet;
fd_set writeSet;
struct sockaddr_in clientAddr;