server.cpp

来自「一个基于windows api 的源程序...有很强的参考价值」· C++ 代码 · 共 70 行

CPP
70
字号
#include <winsock.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "passive_server.C"
#pragma comment(lib,"wsock32")

#define QLEN   5
#define BUFSIZE  2048
#define WAVERS    MAKEWORD(2,0)

SOCKET  TCPserver(const char *service,int qlen);



void main(int argc,char *argv[])
{
    char    *service = "3333";
    struct   sockaddr_in fsin;
    SOCKET   msock,ssock;    
    WSADATA  wsadata;
    int      alen,cc;
    char     buf[BUFSIZE];
    
    switch(argc)
    {
    	case 1:
    	 	break;
    	case 2:
    		service=argv[1];
    		break;
    	default:
  		 printf("argment error\n");
  		 exit(1); 
    }
    
    if(WSAStartup(WAVERS,&wsadata)!=0)
    {
        printf("initalize failed\n");  
  	WSACleanup();
 	exit(1);  
    }
    
    msock=TCPserver(service,QLEN);
    
    while(1){
    	alen=sizeof(struct sockaddr);
    	ssock=accept(msock,(struct sockaddr *)&fsin,&alen);
    	
    	if(ssock==INVALID_SOCKET)    	
    	{
           printf("initalize failed\n");  
  		  WSACleanup();
 		  exit(1);  
    	}
    	buf[0]='\n'; 
    	while( cc=recv(ssock,buf,sizeof(buf)-1,0) ){
    	     buf[cc]='\0';
    	     printf("%s",buf);
			 
			 
    	}
    	printf("connect close... ");
    	closesocket(ssock);
		break;

    }
 
    
}

⌨️ 快捷键说明

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