#include <stdio.h>
#include <WINSOCK2.H>
#include <iostream.h>
void main()
{
printf("Service waiting\n");
WORD wVersionRequested;
WSADATA WSAData;
int err;
wVersionRequested=MAKEWORD(1,1);
err=WSAStartup(wVersionRequested,&WSAData);
if (err!=0)
{
cout<<"WSAStartup failed:"<<WSAGetLastError()<<endl;
return;
}
if (LOBYTE(WSAData.wVersion)!=1||HIBYTE(WSAData.wVersion)!=1)
{
WSACleanup();
cout<<"WSAStartup failed:type not fill"<<endl;
return;
}
SOCKET sockServ=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//INADDR_ANY本身就是一个值为0的宏,在此可以不强制转换
addrSrv.sin_port=htons(5000);
err=bind(sockServ,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
if (err!=0)
{
cout<<"bind failed:"<<WSAGetLastError()<<endl;
return;
}
listen(sockServ,5);
SOCKADDR_IN addrClient;
int len;
len=sizeof(SOCKADDR);
int n=1;
while (1)
{
SOCKET sockConn=accept(sockServ,(SOCKADDR*)&addrClient,&len);
char sendBuf[100];
sprintf(sendBuf,"欢迎 %s:%d访问我的服务器",inet_ntoa(addrClient.sin_addr),ntohs(addrClient.sin_port));
send(sockConn,sendBuf,strlen(sendBuf)+1,0);
char recvBuf[100];
recv(sockConn,recvBuf,100,0);
printf("%s\n",recvBuf);
closesocket(sockConn);
n++;
/*if (n==2)
{
break;
}*/
}
}