超小型循环式服务器-原生socket编程

超小型循环式服务器-原生socket编程

ID:37719552

大小:17.65 KB

页数:5页

时间:2019-05-29

超小型循环式服务器-原生socket编程_第1页
超小型循环式服务器-原生socket编程_第2页
超小型循环式服务器-原生socket编程_第3页
超小型循环式服务器-原生socket编程_第4页
超小型循环式服务器-原生socket编程_第5页
资源描述:

《超小型循环式服务器-原生socket编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、闲来无聊,写了一个体积很小的tcp循环式服务器,方便各系统移植。特共享如下,编译后体积约为8kB,经过7*24小时压力测试,5个以内连接都OK。结合我之前的tcp转发程序,可以做成一个网卡端口信息扫描日志服务。#include#include#include#include#defineSERV_PORT49999#defineMAX_BUF_ONE65535#defineMIN_IP_SIZE16#defineMESSAGE_FILE"m.txt"intMakeCurTimeStr(char*szCurT

2、imeStr){structtm*newtime;charam_pm[]="AM";__time64_tlong_time;_time64(&long_time);//Gettimeas64-bitinteger.//Converttolocaltime.newtime=_localtime64(&long_time);//C4996//Note:_localtime64deprecated;consider_localetime64_sif(newtime->tm_hour>12)//Setupextension.strcpy_s(am_pm,sizeof(am_pm),"PM")

3、;if(newtime->tm_hour>12)//Convertfrom24-hournewtime->tm_hour-=12;//to12-hourclock.if(newtime->tm_hour==0)//Sethourto12ifmidnight.newtime->tm_hour=12;charbuff[30];memset(buff,0,30);asctime_s(buff,sizeof(buff),newtime);sprintf(szCurTimeStr,"%.19s%s",buff,am_pm);return0;}intmain(intargc,char*argv[

4、]){SOCKETso_serv,so_client;structsockaddr_inserv_addr,client_addr;intlen_client;intret;char*szBuf;charszTimeStr[40];FILE*pf;//FILE*pSpeedFile;char*szIp;intiRet,i;unsignedshortnServPort;WSADATAwsaData;iRet=WSAStartup(MAKEWORD(2,2),&wsaData);if(iRet!=NO_ERROR){printf("WSAStartupfailedwitherror:%d

5、",iRet);return1;}so_serv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);memset(&serv_addr,0,sizeof(structsockaddr_in));serv_addr.sin_family=AF_INET;serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);nServPort=(argc>1)?atoi(argv[1]):SERV_PORT;//是否自行指定端口,若不指定用默认的49999serv_addr.sin_port=htons(nServPort);iRet=

6、bind(so_serv,(sockaddr*)&serv_addr,sizeof(structsockaddr_in));if(SOCKET_ERROR==iRet){closesocket(so_serv);WSACleanup();return-1;}iRet=listen(so_serv,SOMAXCONN);if(SOCKET_ERROR==iRet){closesocket(so_serv);WSACleanup();return-1;}printf("Receiveserverstart!Port:%d",nServPort);for(;;){len_client=

7、sizeof(structsockaddr_in);memset(&client_addr,0,len_client);so_client=accept(so_serv,(sockaddr*)&client_addr,&len_client);szBuf=(char*)malloc(MAX_BUF_ONE);memset(szBuf,0,MAX_BUF_ONE);ret=recv(so_client,(char*)szBuf,(MAX_BUF_ONE-1)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。