帮忙啊,怎么都不能通过的,提示少头文件#include<STDAFX.H>,重装C++都不地啊!
代码:
#include<Winsock2.h> #include<stdio.h> #include<STDAFX.H> void main(){ SOCKET socketid; struct sockaddr_in server_add; SOCKET msgsocket; char buffer[1024]; int rval; WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=AKEWORD(1, 1); err=WSASetup(wVersionRequeated, &wsaData); if(err!=0){ perror("there is no DLL to use"); return; } if((LOBYTE(wsaData.wVersion)!=1)||(HIBYTE(wsaData.wVersion)!=1) { perror("there is not right DLL"); WSACleanup(); return; } socketid=socket(AF_INET,SOCK_STREAM,0); if(socketid=INVALID_SOCKET){ perror("there is error in opening sockets\n"); return; } server_addr.sin_family=AF_INET; server_addr.sin_port=htons(1983); server_addr.sin_addr.S_un.S_un_b.s_b1=***; server_addr.sin_addr.S_un.S_un_b.s_b2=***; server_addr.sin_addr.S_un.S_un_b.s_b3=***; server_addr.sin_addr.S_un.S_un_b.s_b4=***; if(bind(socketid,(sockadd*)&server_addr,sizeof(server_addr))<0) { perror("there is error in binding sockets\n"); return; } int length=sizeof(server_addr); if(getsockname(socketid),(struct sockaddr*)&server_addr,&length)<0) { perror("there is error in geting name"); return; } printf("socket port%d\n",ntohs(server_addr.sin_port)); listen(socketid ,5); do { msgsocket=accept(socketid,(struct sockaddr*)&server_addr,&length); if(msgsosket==INCALID_SOCKET) { perror("there is error inopen new sockets"); break; } else do { memset(buffer,0,sizeof(buffer)); rval=recv(msgsocket,buffer,1024,0); if(rval<0) { perror("there is error in recving"); break; } if(rval==0){ printf("ending connetion...."); break; } else printf("->%s\n",buffer); } while(rval!=0); closesocket(msgsocket); } while(TRUE); closesocket(socketid); WSACleanup(); return; }
|