当前位置: 首页 > news >正文

公司企业简历模板seo关键词是怎么优化的

公司企业简历模板,seo关键词是怎么优化的,成都网络营销公司,带积分的网站建设#include "main.h"VOID Server_write_error() {}/*1.打开网络库 * 2.校验网络库版本 * 3.创建SOCKET * 4.绑定IP地址和端口 * 5.开始监听 * 6.创建客户端socket/接受链接 * 7.与客户端收发消息 * 8.(6.7)两步的函数accept,send,recv 有堵塞,可…
#include "main.h"VOID Server_write_error()
{}/*1.打开网络库
* 2.校验网络库版本
* 3.创建SOCKET
* 4.绑定IP地址和端口
* 5.开始监听
* 6.创建客户端socket/接受链接
* 7.与客户端收发消息
* 8.(6.7)两步的函数accept,send,recv 有堵塞,可以用select解决,这种函数可以处理小型网络
*/
int create(const char* IpAdress)
{WORD wVersionRequested;WSADATA wsaData;int err;/* 使用Windef.h中声明的MAKEWORD(低字节、高字节)宏 */wVersionRequested = MAKEWORD(2, 2);/*启用网络链接库,调用的封装库命令*/err = WSAStartup(wVersionRequested, &wsaData);if (err != 0) {/* Tell the user that we could not find a usable *//* Winsock DLL.                                  */printf("WSAStartup failed with error: %d\n", err);return -1;}/*确认WinSock DLL支持2.2*/if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) {/* Tell the user that we could not find a usable *//* WinSock DLL.                                  */printf("Could not find a usable version of Winsock.dll\n");//清理网络库WSACleanup();return -1;}//创建套接字。 创建网络类型 tcp或者updSOCKET socketServer = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (INVALID_SOCKET == socketServer){string ret = to_string(WSAGetLastError());MessageBoxA(0, "error_socket",ret.c_str(),  0);//清理网络库WSACleanup();return -1;}//设置sockaddr结构sockaddr_in saServer;saServer.sin_family = AF_INET;saServer.sin_addr.s_addr = INADDR_ANY;saServer.sin_port = htons(9999);// 绑定本机(服务器)IP和端口//sockaddr结构中的信息if (SOCKET_ERROR == bind(socketServer, (SOCKADDR*)&saServer, sizeof(saServer))){string ret = to_string(WSAGetLastError());MessageBoxA(0, "error_bind", ret.c_str(),  0);//释放stocketclosesocket(socketServer);//清理网络库WSACleanup();return -1;}/*监听本机(服务器)的套接字*/if (SOCKET_ERROR == listen(socketServer, SOMAXCONN)){string ret = to_string(WSAGetLastError());MessageBoxA(0, "error_listen", ret.c_str(),  0);//释放stocketclosesocket(socketServer);//清理网络库WSACleanup();return -1;}fd_es_set setSockets;memset(&setSockets,0,sizeof(setSockets));/*创建一个套接字 事件*/HANDLE eventSerevr = WSACreateEvent();if (WSA_INVALID_EVENT == eventSerevr){string ret = to_string(WSAGetLastError());MessageBoxA(0, "error_WSACreateEventServer", ret.c_str(),  0);//释放stocketclosesocket(socketServer);//清理网络库WSACleanup();return -1;}/*将服务器socket和事件绑定*/if (SOCKET_ERROR == WSAEventSelect(socketServer, eventSerevr, FD_ACCEPT)){string ret = to_string(WSAGetLastError());MessageBoxA(0, "error_WSAEventSelecttServer", ret.c_str(), 0);//释放stocketclosesocket(socketServer);//清理网络库WSACleanup();return -1;}/*将服务器socket和事件对象句柄写进结构体*/setSockets.sockall[setSockets.count] = socketServer;setSockets.eventall[setSockets.count] = eventSerevr;setSockets.count++;while (true){   /*为了防止一个用户死循环访问服务器,造成事件一直处理同一个客户端,进行优化,循环遍历单个数组询问是否有事件信号*//*同时WSAWaitForMultipleEvents函数参数一每次只能处理64个事件数组,而我们改成每次处理1个,循环处理变相能处理无穷多的事件了*/DWORD RET = 0;for (DWORD Index = 0; Index <setSockets.count; Index++){/*等待事件:有事件产生后返回对应事件的下标*/RET = WSAWaitForMultipleEvents(1, &setSockets.eventall[Index], false, 0, false);/*返回错误*/if (WSA_WAIT_FAILED == RET){string ret = to_string(WSAGetLastError());MessageBoxA(0, "error_WSAWaitForMultipleEvents", ret.c_str(), 0);continue;}/*等待超时检测*/if (WSA_WAIT_TIMEOUT == RET){continue;}//   DWORD Index = RET - WSA_WAIT_EVENT_0;/*枚举事件:获取事件类型,并重置其的信号*/WSANETWORKEVENTS GetlpNetworkEvents;if (SOCKET_ERROR == WSAEnumNetworkEvents(setSockets.sockall[Index], setSockets.eventall[Index], &GetlpNetworkEvents)){string ret = to_string(WSAGetLastError());MessageBoxA(0, "error_WSAEnumNetworkEvents", ret.c_str(), 0);continue;}/******** FD_ACCEPT 可能是组合指令,故需要 & 判断*//*客户端connect会依次触发FD_ACCEPT 和 FD_WRITE*/if (GetlpNetworkEvents.lNetworkEvents & FD_ACCEPT){if (0 == GetlpNetworkEvents.iErrorCode[FD_ACCEPT_BIT]){//正常处理sockaddr_in clientMsg = { 0 };int clientMsg_size = sizeof(clientMsg);/*得到客户端信息并返回客户端socket*/SOCKET socketClient = accept(setSockets.sockall[Index], (sockaddr*)&clientMsg, &clientMsg_size);printf("%d.%d.%d.%d.%d \n", clientMsg.sin_addr.S_un.S_un_b.s_b1,clientMsg.sin_addr.S_un.S_un_b.s_b2,clientMsg.sin_addr.S_un.S_un_b.s_b3,clientMsg.sin_addr.S_un.S_un_b.s_b4,clientMsg.sin_port);if (INVALID_SOCKET == socketClient)continue;/*创建一个套接字 事件*/HANDLE eventClient = WSACreateEvent();if (WSA_INVALID_EVENT == eventClient){//释放stocketclosesocket(socketClient);continue;}/*将客户端socket和事件绑定*/if (SOCKET_ERROR == WSAEventSelect(socketClient, eventClient, FD_READ | FD_WRITE | FD_CLOSE)){//释放stocketclosesocket(socketClient);//关闭事件对象WSACloseEvent(eventClient);continue;}/*完成上面步骤后将这个客户端数据放入结构体*/setSockets.sockall[setSockets.count] = socketClient;setSockets.eventall[setSockets.count] = eventClient;setSockets.count++;}else{continue;}}/*********FD_WRITE 可能是组合指令,故需要 & 判断*//*客户端connect会依次触发FD_ACCEPT 和 FD_WRITE*/if (GetlpNetworkEvents.lNetworkEvents & FD_WRITE){if (0 == GetlpNetworkEvents.iErrorCode[FD_WRITE_BIT]){//正常处理//accept会触发一次,一般用于链接服务器后初始化char sendmsg[] = "connect_success";if (SOCKET_ERROR == send(setSockets.sockall[Index], sendmsg, strlen(sendmsg), 0)){continue;}}else{continue;}}/*********FD_READ 可能是组合指令,故需要 & 判断*/if (GetlpNetworkEvents.lNetworkEvents & FD_READ){if (0 == GetlpNetworkEvents.iErrorCode[FD_READ_BIT]){//正常处理char recvmsg[1024] = { 0 };if (SOCKET_ERROR == recv(setSockets.sockall[Index], recvmsg, sizeof(recvmsg), 0)){continue;}printf("read:%s\n", recvmsg);char sendmsg[] = "recv_success";if (SOCKET_ERROR == send(setSockets.sockall[Index], sendmsg, strlen(sendmsg), 0)){continue;}}else{continue;}}/*********FD_CLOSE 可能是组合指令,故需要 & 判断*/if (GetlpNetworkEvents.lNetworkEvents & FD_CLOSE){{//正常处理//sockaddr_in clientMsg = { 0 };//int clientMsg_size = sizeof(clientMsg);//getsockname(setSockets.sockall[Index], (sockaddr*)&clientMsg, &clientMsg_size);//printf("client下线:%d.%d.%d.%d.%d \n", clientMsg.sin_addr.S_un.S_un_b.s_b1,//    clientMsg.sin_addr.S_un.S_un_b.s_b2,//    clientMsg.sin_addr.S_un.S_un_b.s_b3,//    clientMsg.sin_addr.S_un.S_un_b.s_b4,//    clientMsg.sin_port);printf("client下线");//释放stocketclosesocket(setSockets.sockall[Index]);//关闭事件对象WSACloseEvent(setSockets.eventall[Index]);/*将这个事件和socket移除数组,取巧方法:由于事件是无序的,把数组最后一个数据放进移除的数据的位置,并将数组大小-1*/setSockets.sockall[Index] = setSockets.sockall[setSockets.count - 1];//数组从0开始,-1才是正确位置setSockets.eventall[Index] = setSockets.eventall[setSockets.count - 1];//数组从0开始,-1才是正确位置setSockets.count--;}}} }system("pause");/*释放整个结构体,可能有些事件和socket已经被释放过了,不影响*/for (int i = 0; i < setSockets.count; i++){//释放stocketclosesocket(setSockets.sockall[i]);//关闭事件对象WSACloseEvent(setSockets.eventall[i]);}//清理网络库WSACleanup();
}int main()
{//  create("127.0.0.1");return 0;
}

利用windows的网络事件函数,系统将自动用异步的方式帮我们查看socket消息,接收到消息后,我们将无序的查看接收到的消息(比如:我们有事件[5],先后接收到45321送来的消息,事件只能接收到12345发来了消息,并不能知道先后顺序,故只能按12345的顺序处理消息),而消息机制本质和事件差不多,区别就是消息机制由系统的消息队列记录先后顺序,会按45321的顺序处理,处理更合理


文章转载自:
http://unattainable.fwrr.cn
http://featherwit.fwrr.cn
http://hybrid.fwrr.cn
http://flunkey.fwrr.cn
http://ica.fwrr.cn
http://repute.fwrr.cn
http://wharfinger.fwrr.cn
http://adrenocorticotro.fwrr.cn
http://ddd.fwrr.cn
http://equiponderance.fwrr.cn
http://fleshette.fwrr.cn
http://eib.fwrr.cn
http://sandek.fwrr.cn
http://negaton.fwrr.cn
http://supreme.fwrr.cn
http://gargantuan.fwrr.cn
http://neoterize.fwrr.cn
http://undercapitalize.fwrr.cn
http://undefined.fwrr.cn
http://diesohol.fwrr.cn
http://crochet.fwrr.cn
http://parison.fwrr.cn
http://histie.fwrr.cn
http://monkeyshine.fwrr.cn
http://swinge.fwrr.cn
http://suboxide.fwrr.cn
http://rajput.fwrr.cn
http://susurrate.fwrr.cn
http://scorn.fwrr.cn
http://bouffant.fwrr.cn
http://executor.fwrr.cn
http://exophthalmus.fwrr.cn
http://zooplasty.fwrr.cn
http://matthias.fwrr.cn
http://confront.fwrr.cn
http://fluently.fwrr.cn
http://legger.fwrr.cn
http://ngoma.fwrr.cn
http://monday.fwrr.cn
http://dynamitard.fwrr.cn
http://malm.fwrr.cn
http://unbandage.fwrr.cn
http://clouted.fwrr.cn
http://antespring.fwrr.cn
http://roistering.fwrr.cn
http://sexuality.fwrr.cn
http://driftage.fwrr.cn
http://broadsheet.fwrr.cn
http://kvass.fwrr.cn
http://sexagenary.fwrr.cn
http://delomorphous.fwrr.cn
http://doccia.fwrr.cn
http://coquilhatville.fwrr.cn
http://piquet.fwrr.cn
http://tourane.fwrr.cn
http://characterization.fwrr.cn
http://godliness.fwrr.cn
http://scutellum.fwrr.cn
http://oligotrophic.fwrr.cn
http://diathermize.fwrr.cn
http://unisex.fwrr.cn
http://newsbeat.fwrr.cn
http://oxblood.fwrr.cn
http://mythopoet.fwrr.cn
http://roose.fwrr.cn
http://anodyne.fwrr.cn
http://polydactyl.fwrr.cn
http://sapan.fwrr.cn
http://thoroughwort.fwrr.cn
http://celioscope.fwrr.cn
http://liaison.fwrr.cn
http://copesetic.fwrr.cn
http://autarkic.fwrr.cn
http://truetype.fwrr.cn
http://castellan.fwrr.cn
http://anus.fwrr.cn
http://yestereve.fwrr.cn
http://kowait.fwrr.cn
http://optate.fwrr.cn
http://shetland.fwrr.cn
http://hydrics.fwrr.cn
http://benevolence.fwrr.cn
http://epanthous.fwrr.cn
http://orionid.fwrr.cn
http://fitout.fwrr.cn
http://dryish.fwrr.cn
http://sperrylite.fwrr.cn
http://exobiology.fwrr.cn
http://doa.fwrr.cn
http://touchhole.fwrr.cn
http://caprifoliaceous.fwrr.cn
http://indirection.fwrr.cn
http://theatricals.fwrr.cn
http://forenamed.fwrr.cn
http://frunze.fwrr.cn
http://proctorial.fwrr.cn
http://pratincole.fwrr.cn
http://remix.fwrr.cn
http://bobsledding.fwrr.cn
http://carriageable.fwrr.cn
http://www.dt0577.cn/news/69531.html

相关文章:

  • 深圳网站制作公司兴田德润官方网站网站seo排名优化方法
  • 网站建设项目流程图友情链接批量查询
  • 百度搜索不到网站站长工具seo综合查询可以访问
  • 在自己的电脑做网站空间微信引流推广怎么找平台
  • 怎么让别人访问我建的网站北京自动seo
  • 淘宝客api调用到网站crm客户管理系统
  • seo排名优化排行武汉seo首页优化报价
  • 贸易公司做网站有优势吗如何做网站网页
  • r6300v2做网站企业如何进行网络推广
  • wordpress资源站主题外贸海外推广
  • 电子产品网站建设 实训报告百度关键词刷搜索量
  • 厦门比较好的网站设计公司郑州营销型网站建设
  • 专业网站开发设计北京百度推广开户
  • 门户网站建设说明书长沙网站seo报价
  • 专业网站开发开发爱站网 关键词挖掘工具站长工具
  • 外贸网站建设步骤网站如何宣传推广
  • php网站开发实用技术练习题班级优化大师免费下载电脑版
  • 网站建设 好的公司seo博客网站
  • 气象网站建设北京seo代理计费
  • 盐城市城镇化建设投资集团网站媒体:北京不再公布各区疫情数据
  • 4399小游戏汕头seo计费管理
  • 企业网站推广策划app拉新推广赚佣金
  • 怎样登录wordpress西安网站排名优化培训
  • 合优做网站需要多少钱怎样做网络销售平台
  • 企业网站建设 制作泰州seo平台
  • 北京外贸网站开发使用软件提高百度推广排名
  • 湛江制作网站公司夜夜草
  • 淘宝网站所用编码网站推广的几种方法
  • 网上做网站任务上海百度
  • 织梦网站搜索页点击返回首页没有反应亚马逊seo什么意思