C 所有括号匹配时,输入末尾出现语法错误
我意识到这种担心几乎总是由于一个简单的打字错误,但我一生都找不到这个错误的原因。我已经检查了多次括号,并检查了是否有遗漏,但没有发现任何错误。请原谅我初始化数组的那种令人厌恶的方式,有什么不对吗C 所有括号匹配时,输入末尾出现语法错误,c,compiler-errors,syntax-error,C,Compiler Errors,Syntax Error,我意识到这种担心几乎总是由于一个简单的打字错误,但我一生都找不到这个错误的原因。我已经检查了多次括号,并检查了是否有遗漏,但没有发现任何错误。请原谅我初始化数组的那种令人厌恶的方式,有什么不对吗 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/time.h> #include <sys/types.h> #include <sys/s
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <unistd.h>
#include <sys/poll.h>
#define BufferLength 100
#define SERVPORT 5011
int main(int argc, char * argv[])
{
int sd, sd2, rc, length = sizeof(int);
int totalcnt = 0, on = 1;
char temp;
char buffer[BufferLength];
char init[10];
struct sockaddr_in serveraddr;
struct sockaddr_in their_addr;
fd_set read_fd;
struct timeval timeout;
timeout.tv_sec = 60;
timeout.tv_usec = 0;
int new_sd;
int nfds = 1; int len;
//..........................SOCKET SETUP..............................................||
if((sd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
perror("Socket error");
exit (-1);
}
if((rc = setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on))) < 0)
{
perror("socket setup error");
close(sd);
exit (-1);
}
memset(&serveraddr, 0x00, sizeof(struct sockaddr_in));
serveraddr.sin_family = AF_INET;
serveraddr.sin_port = htons(SERVPORT);
serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
printf("Using %s, listening at %d\n", inet_ntoa(serveraddr.sin_addr), SERVPORT);
//............................BINDING...............................................||
if((rc = bind(sd, (struct sockaddr *)&serveraddr, sizeof(serveraddr))) < 0)
{
perror("server binding error");
close(sd);
exit(-1);
}
//............................LISTENING.............................................||
if((rc = listen(sd, 8)) < 0)
{ perror("listen error"); close(sd); exit (-1);}
else
printf("Ready for up to eight connections...\n");
int sin_size = sizeof(struct sockaddr_in);
//............................ACCEPTING..............................................||
if((sd2 = accept(sd, (struct sockaddr *)&their_addr, &sin_size)) < 0)
{ perror("Server-accept() error"); close(sd); exit (-1); }
printf("Got connection from the accursed client: %s\n", inet_ntoa(their_addr.sin_addr));
FD_ZERO(&read_fd);
FD_SET(sd2, &read_fd);
//..................................POLL STUFF.......................................||
int i,n;
int m = 0;
char ** init0 = (char**)malloc(9);
for( m; m<10; m+=1)
init0[m] = (char*)malloc(100);
char * left = (char*)malloc(100);
char * enter = (char*)malloc(100);
char ** Tinit0 = (char**)malloc(9);
for(m = 0; m<10; m+=1)
Tinit0[m] = (char*)malloc(100);
memset(left,0,100);
for(m = 0; m<10; m+=1)
memset(Tinit0[m],0,100);
for(m = 0; m<10; m+=1)
memset(init0[m],0,100);
memset(enter, 0, 100);
strcpy(enter,"Entered:_ ");
strcpy(left,"Left: ");
struct pollfd ufds[9];
ufds[0].fd = sd;
ufds[0].events = POLLIN;
ufds[1].fd = sd2;
ufds[1].events = POLLOUT;
ufds[2].fd = sd2;
ufds[2].events = POLLOUT;
ufds[3].fd = sd2;
ufds[3].events = POLLOUT;
ufds[4].fd = sd2;
ufds[4].events = POLLOUT;
ufds[5].fd = sd2;
ufds[5].events = POLLOUT;
ufds[6].fd = sd2;
ufds[6].events = POLLOUT;
ufds[7].fd = sd2;
ufds[7].events = POLLOUT;
ufds[8].fd = sd2;
ufds[8].events = POLLOUT;
//timeout = (6000);
n = poll(ufds, 9, 40000);
do{
for (i = 0; i < 9; i++)
{
if(ufds[i].revents == 0)
continue;
if (ufds[i].fd == sd)
{
do
{
new_sd = accept(sd2, NULL, NULL);
ufds[nfds].fd = new_sd;
ufds[nfds].events = POLLIN;
nfds++;
} while (new_sd != -1);
}
else
{
do
{
rc = recv(ufds[i].fd, buffer, sizeof(buffer), 0);
len =rc;
if(strcmp(init0[i],"") == 0) // IF INITAL HAS NOT BEEN SET UP
{ // (DURING FIRST CONNECTION FROM CLIENT)
if((rc == 1) && (FD_ISSET(sd2, &read_fd)))
{
printf("initial from client is: %s\n",buffer);
strcpy(init0[i],buffer);
printf("init0 is: %s\n", init0[i]); Tinit0[i] = init0[0];
}
strcat(enter, init0[i]);
printf("string enter is: %s , about to try write enter\n",enter);
for(m = 1; m <9; m+=1)
rc = send(ufds[m].fd, enter, 20, 0);
}
strcat(Tinit0[i],"__");
for(m = 1; m <9; m+=1)
rc = send(ufds[m].fd, Tinit0[i], 100, 0);
if(rc==0)
{
strcat(left, init0[i]);
printf("%s\n",left);
for(m = 1; m <9; m+=1)
rc = send(ufds[m].fd, left, 100, 0);
}
} while(1==1);
} //end of else
} //end of for
} //end of do
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#定义缓冲区长度100
#定义ServPort5011
int main(int argc,char*argv[])
{
int-sd,sd2,rc,长度=sizeof(int);
int totalcnt=0,on=1;
焦炭温度;
字符缓冲区[BufferLength];
char init[10];
serveraddr中的结构sockaddr\u;
在其地址中的结构sockaddr\u;
fd_设置为read_fd;
结构timeval超时;
timeout.tv_sec=60;
timeout.tv_usec=0;
国际新南威尔士大学sd;
int nfds=1;int len;
//插座设置||
if((sd=socket(AF\u INET,SOCK\u STREAM,0))<0)
{
perror(“套接字错误”);
出口(-1);
}
if((rc=setsockopt(sd,SOL_SOCKET,SO_REUSEADDR,(char*)&on,sizeof(on)))<0)
{
perror(“套接字设置错误”);
关闭(sd);
出口(-1);
}
memset(&serveraddr,0x00,sizeof(struct sockaddr_in));
serveraddr.sin_family=AF_INET;
serveraddr.sin_port=htons(SERVPORT);
serveraddr.sin\u addr.s\u addr=htonl(INADDR\u ANY);
printf(“使用%s,在%d\n侦听”,inet\u ntoa(serveraddr.sin\u addr),SERVPORT);
//有约束力
if((rc=bind(sd,(struct sockaddr*)&serveraddr,sizeof(serveraddr)))<0)
{
perror(“服务器绑定错误”);
关闭(sd);
出口(-1);
}
//倾听||
如果((rc=listen(sd,8))<0)
{perror(“侦听错误”);关闭(sd);退出(-1);}
其他的
printf(“准备好最多八个连接…\n”);
int sin_size=sizeof(结构sockaddr_in);
//接受||
if((sd2=accept(sd,(struct sockaddr*)及其地址和大小))<0)
{perror(“Server-accept()错误”);关闭(sd);退出(-1);}
printf(“从该死的客户端获得连接:%s\n”,inet_ntoa(他们的地址sin_addr));
FD_ZERO(&read_FD);
FD_集(sd2和读取_FD);
//投票材料||
inti,n;
int m=0;
char**init0=(char**)malloc(9);
对于(m;m您的do{}while()
循环缺少while
关键字。您的do{}while()
循环缺少while
关键字。GCC报告:178:1:错误:预期为'while'before''token
@Rufflewind:它还警告第50行和第78行的printf
格式字符串不正确。@iharob:我已经删除了我的评论,我会马上删除这个。请随时删除您的“哇,对不起”注释。让我们从这段代码开始,当通过编译器运行时,会生成一个很长的警告消息数组。如果修复了这些警告,语法错误可能会很容易看到。代码缺少子函数SGCC报告所需的原型:178:1:error:expected'while'before'}标记
@Rufflewind:它还警告第50行和第78行的printf
格式字符串不正确。@iharob:我已经删除了我的评论,我会马上删除这个评论。请随意删除您的“哇,对不起”注释。让我们从这段代码开始,当编译器运行时,会生成一长串警告消息。如果您修复了这些警告,语法错误可能会很容易被发现。代码缺少子函数所需的原型。我是个十足的傻瓜。谢谢。我是个十足的傻瓜。谢谢。