⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.cpp

📁 C++Builder网络应用例程. C++Builder网络应用例程.
💻 CPP
字号:
#include <winsock.h>
#include <stdio.h>
#pragma hdrstop
#include <condefs.h>


//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
 int sock,length;
 struct sockaddr_in server;
 int msgsock;
 char buf[1024];
 int rval;

 WORD wVersionRequested;
 WSADATA wsaData;

 wVersionRequested=MAKEWORD(2,0);
 int err=WSAStartup(wVersionRequested,&wsaData);
 if(err==-1)
   {
    perror("WSAStartup");
    exit(1);
   }
 sock=socket(AF_INET,SOCK_STREAM,0);
 if(sock<0)
   {
    perror("Opening stream socket");
    exit(1);
   }

 server.sin_family=AF_INET;
 server.sin_port=htons(7016);
 server.sin_addr.s_addr=INADDR_ANY;
 if(bind(sock,(const struct sockaddr *)&server,sizeof(server))<0)
   {
    perror("binding stream socket");
    exit(1);
   }
 length=sizeof(server);
 if(getsockname(sock,(struct sockaddr*)&server,&length)<0)
   {
    perror("GETING socket name");
    exit(1);
   }
 printf("socket port #%d\n",ntohs(server.sin_port));
 listen(sock,5);
 do
   {
    msgsock=accept(sock,(struct socketaddr*)0,(int *)0);
    printf("Have client connected.\n");
    if(msgsock==-1)
      perror("accept");
    else
      do
        {
         memset(buf,0,sizeof(buf));
         if((rval=recv(msgsock,buf,1024,MSG_OOB))<0)
           {
            if(rval==WSAEINPROGRESS)
              printf("Hello1\n");
            if(rval==WSAENETRESET)
              printf("Hello2\n");
            if(rval==WSAENOTSOCK)
              printf("Hello3\n");
            if(rval==WSAEOPNOTSUPP)
              printf("Hello4\n");
            perror("reading stream message");
            getchar();
            exit(1);
           }
         else if(rval==0)
           printf("ending connetion\n");
         else
           printf("---->%s\n",buf);
        }while(rval!=0);
     closesocket(msgsock);
   }while(true);

WSACleanup();
return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -