我在调试程序时出现:
--------------------Configuration: Cpp1 - Win32 Debug-----------
Compiling...
Cpp1.cpp
d:\microsoft visual studio\vc98\include\stdio.h(36) : error C2143: syntax error : missing ';' before 'string'
d:\microsoft visual studio\vc98\include\stdio.h(36) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.
经认真检查后发现源代码没有错误,开始也以为C++类库的stdio.h有错误,调试后发现也没有错,然后不知道该怎么办了,源程序如下:
#include"F:\study\毕业设计\pop\initsock.h"
#include<stdio.h>
CInitSock initSock; //初始化Winsock库
int main()
{
//创建套接字
SOCKET sListen=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(sListen==INVALID_SOCKET)
{
printf("Failed socket()\n");
return();
}
//填充sockaddr_in结构
sockaddr_in sin;
sin.sin_family=AF_INET;
sin.sin_port=htons(4567);
sin.sin_addr.S_un.S_addr=INADDR_ANY;
//绑定这个套接字到一个本地地址
if(::bind(sListen,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR)
{
printf("Faile bind()\n");
return();
}
//进入监听模式
if(::listen(sListen,2)==SOCKET_ERROR)
{
printf("Failed listen()\n");
retrun();
}
//循环接受客户的连接请求
sockaddr_in remoteAddr;
int nAddrLen=sizeof(remoteAddr);
SOCKET sClient;
char szText[]="TCP Server Demo!\r\n";
while(TRUE)
{ //接受新连接
sClient=::accept(sListen,(SOCKADDR*)&remoteAddr,&nAddrLen);
if(sClient==INVALID_SOCKET)
{
printf("Failed accept()");
continue;
}
printf("接受到一个连接:%s/r/n",inet_ntoa(remoteAddr.sin_addr));
//向客户端发送数据
::send(sCinent,szText,strlen(szText),0);
//关闭同客户端的连接
::closesocket(sClient);
}
//关闭监听套接字
::closesocket(sListen);
retrun();
}
请各位大虾指教!!
參考答案:F:\study\毕业设计\pop\initsock.h 这个头文件格式有问题
编译器认为它没有正常结束,所以连带认为stdlib有问题