mingw gcc window socket server

 #define MINGW32
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef MINGW32
#include <winsock2.h>
#else
#include <sys/socket.h>
#include <arpa/inet.h>
#endif

#define LISTENQ 10
#define SERVER_IP "192.168.1.103"

int main(int argc,char *argv[])
{
  int serverfd,connectfd;
  struct sockaddr_in serveraddr;
  char buff[1024];
 // time_t tlick;
  int iRet;
  int retVal;
  int         sClient;
 struct sockaddr_in addrClient;
  #ifdef MINGW32
  //Winsows下启用socket
  WSADATA wsadata;
  if(WSAStartup(MAKEWORD(1,1),&wsadata)==SOCKET_ERROR)
  {
    printf("WSAStartup() fail\n");
    exit(0);
  }
  #endif

  //新建socket
  printf("socket()\n");
  serverfd=socket(AF_INET,SOCK_STREAM,0);
  if(serverfd==-1)
  {
    printf("socket() fail\n");
    exit(0);
  }

  //清零
  memset(&serveraddr,0,sizeof(serveraddr));

  //设置协议
  serveraddr.sin_family=AF_INET;
  //设置IP
  serveraddr.sin_addr.s_addr=inet_addr(SERVER_IP);   //htonl(INADDR_ANY);
  //设置Port
  serveraddr.sin_port=htons(10240);


  //绑定端口,监听1024端口的任何请求
  printf("bind()\n");


  printf("%d ", inet_addr(SERVER_IP) );
  iRet=bind(serverfd,(struct sockaddr*)&serveraddr,sizeof(serveraddr));
  if(iRet==-1)
  {
    printf("bind() fail\n");
    exit(0);
  }


  //监听端口,最大并发数10
  printf("listen()\n");
  iRet=listen(serverfd,LISTENQ);
  if(iRet==-1)
  {
    printf("listen() fail\n");
    exit(0);
  }


  //接受请求,发送主机时间
  for(;;)
  {
    printf("Waiting for connection...\n");
    //接受请求
   // connectfd=accept(serverfd,(struct sockaddr*)NULL,NULL);

    int addrClientlen = sizeof(addrClient);

    sClient=accept(serverfd,(struct sockaddr FAR*)&addrClient, &addrClientlen);

  ZeroMemory(buff,1024);

    retVal = recv(sClient, buff, 1024, 0);

    printf("%s \n",buff);

    #ifdef MINGW32
    send(connectfd,buff,strlen(buff),0);
    closesocket(connectfd);
    #else
    write(connectfd,buff,strlen(buff));
    close(connectfd);
    #endif
  }


  #ifdef MINGW32
  //Winsows下关闭socket
  closesocket(serverfd);
  WSACleanup();
  #endif


  //退出
  exit(0);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Mingw GCC 4.4是一个支持C和C++编程语言的开源编译器套件。MingwMinGW"Minimalist GNU for Windows"的缩写,是一个在Windows操作系统上运行的GNU开源软件开发工具包。GCC则是GNU编译器集合的缩写,它是用于软件开发的一种编译器。Mingw GCC 4.4是基于GCC 4.4版本的编译器。 Mingw GCC 4.4具有许多优点。首先,它是在Windows平台上的一种免费的编译器,它允许开发者在Windows操作系统上编写和编译C和C++代码。此外,Mingw GCC 4.4提供了许多有用的工具和库,用于帮助开发者开发高质量的应用程序。它还支持多种编程语言和标准,并提供了丰富的功能,例如内联汇编、优化选项和调试支持。 Mingw GCC 4.4在编译速度和执行效率方面也具有优势。它采用了先进的优化算法和技术,能够生成高效的机器代码,并对代码进行优化。此外,Mingw GCC 4.4还支持多线程编译,这可以加快编译过程,提高开发者的工作效率。 总的来说,Mingw GCC 4.4是一个强大的编译器套件,适用于Windows平台上的C和C++开发。它具有免费、开源、高效、功能丰富等优点,被广泛应用于软件开发领域。无论是初学者还是有经验的开发者,都可以通过使用Mingw GCC 4.4来编写高质量的代码,并进行快速、高效的软件开发。 ### 回答2: Mingw GCC 4.4是一种用于Windows系统的GCC(GNU编译器集合)软件套件,它的版本号是4.4。GCC是一个非常流行的开源编译器,用于编译C、C++和其他一些编程语言。 Mingw代表Minimalist GNU for Windows,它是一个将GCC编译器和一些开发工具移植到Windows平台的项目。Mingw GCC 4.4是该项目的一个旧版本,它提供了GCC 4.4版本的编译器。 GCC 4.4是GCC项目的一个版本,它于2009年发布。它引入了一些新的功能和改进,包括更好的C++语言支持、对某些新标准的支持(如C++0x)以及优化和性能改进等。它也是一个相对稳定和成熟的版本,被广泛用于各种项目和应用程序的开发。 使用Mingw GCC 4.4可以在Windows系统上编写和编译C和C++代码。它可以为开发者提供一个相对轻量级而强大的编译工具链,使他们能够轻松地在Windows环境下开发和调试应用程序。 总的来说,Mingw GCC 4.4是一个用于Windows系统的GCC软件套件,它提供了GCC 4.4版本的编译器,并为开发者提供了在Windows环境下进行C和C++编程的便利。它是一个相对稳定和成熟的版本,被广泛用于各种项目和应用程序的开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Farmwang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值