该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我用vi编辑器编程,编译时出现以下问题,请各位高手指教:
[xyf@ips_01 xyf]$ gcc -o xyf_server xyf_server.c
xyf_server.c:1: syntax error before '
In file included from /usr/include/sys/types.h:266,
from /usr/include/sys/uio.h:24,
from /usr/include/sys/socket.h:27,
from xyf_server.c:2:
/usr/include/bits/pthreadtypes.h:48: syntax error before "size_t"
/usr/include/bits/pthreadtypes.h:51: syntax error before "__stacksize"
In file included from /usr/include/sys/uio.h:29,
from /usr/include/sys/socket.h:27,
from xyf_server.c:2:
/usr/include/bits/uio.h:45: syntax error before "size_t"
In file included from /usr/include/sys/socket.h:35,
from xyf_server.c:2:
/usr/include/bits/socket.h:221: syntax error before "size_t"
/usr/include/bits/socket.h:224: syntax error before "msg_controllen"
/usr/include/bits/socket.h:227: syntax error before '}' token
/usr/include/bits/socket.h:232: syntax error before "size_t"
/usr/include/bits/socket.h:239: syntax error before '}' token
In file included from xyf_server.c:2:
/usr/include/sys/socket.h:136: syntax error before "size_t"
/usr/include/sys/socket.h:143: syntax error before "size_t"
/usr/include/sys/socket.h:150: syntax error before "size_t"
/usr/include/sys/socket.h:161: syntax error before "size_t"
In file included from xyf_server.c:4:
/usr/include/arpa/inet.h:78: syntax error before "size_t"
/usr/include/arpa/inet.h:84: syntax error before "size_t"
/usr/include/arpa/inet.h:90: syntax error before "size_t"
/usr/include/bits/socket.h:237: warning: array `__cmsg_data' assumed to have one element
[xyf@ips_01 xyf]$
程序名为:xyf-server.c
源程序为:
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX_BUF_SIZE 100
#define PORT 1600
#define BACKLOG 10
static char buf[MAX_BUF_SIZE];
int main()
{
int sock,sockfd;
struct sockaddr_in sin;
int size;
fd_set set;
FD_ZERO(&set);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1)
{
perror("server socket");
return -1;
}
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_port = htons(PORT);
if (bind(sockfd, (struct sockaddr *)&sin, sizeof(sin)) == -1)
{
perror("server bind");
return -1;
}
listen(sockfd, BACKLOG );
memset(&sin, 0, sizeof(sin));
size = sizeof(sin);
sock = accept(sockfd, NULL, &size);
if (sock != -1)
{
memset(&sin, 0, sizeof(sin));
size = sizeof(sin);
while(1)
{
FD_SET(sock, &set);
select(sock+1, &set, NULL, NULL, NULL);
size = recv(sock, buf, MAX_BUF_SIZE, 0);
if (size <= 0)
break;
printf("server recv %d bytes", size);
}
}
close(sockfd);
close(sock);
}