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

📄 sotest.cpp

📁 windows S/C socket example.
💻 CPP
字号:
#include "afxmt.h"
#include "winsock2.h"
#pragma     comment(lib,"WS2_32.LIB")

int bufi;

class mserver{

private:
      SOCKET ssock,csock;
      sockaddr_in saddr,caddr;
      int len;
      char buf[4096];

public:
      mserver(){

      }
      mserver(int port,int maxclient){
          saddr.sin_family=AF_INET;
          saddr.sin_port=htons(port);
          saddr.sin_addr.s_addr=INADDR_ANY;
          ssock=socket(AF_INET,SOCK_STREAM,0);
          if(ssock==INVALID_SOCKET){
              printf("build socket error\n");
          }
          if(bind(ssock,(struct sockaddr*)&saddr,sizeof(saddr))==SOCKET_ERROR){
              printf("socket bind fail\n");
          }
          len=sizeof(caddr);
      }

      void close(){
          closesocket(ssock);
          closesocket(csock);
      }

      void beginlisten(){
          if(listen(ssock,10)==SOCKET_ERROR){
              printf("listen fail\n");
          }
      }

      void maccept(){
          sockaddr a;
          csock=accept(ssock,(struct sockaddr*)&caddr,&len);
          if(csock==INVALID_SOCKET){
              printf("accept fail : %d\n",WSAGetLastError());
            
          }
          printf("client from %s connected\n",inet_ntoa(caddr.sin_addr));
      }

      int receive(){
          memset(buf,0,4096);
          if(recv(csock,buf,4096,0)==SOCKET_ERROR){
              return 0;
          }
          printf("message received : %s\n",buf);
          send(csock,buf,4096,0);
          return 1;
      }
    
};

int main()
{
      WSADATA wsaData;
      if (WSAStartup(MAKEWORD(2,1),&wsaData)){
           printf("Winsock initializing fail\n");
           WSACleanup();
           return 0;
      }
      mserver s(12345,10);
      s.beginlisten();
      s.maccept();
      while(s.receive());
      s.close();
      WSACleanup();
      return 0;
}

⌨️ 快捷键说明

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