欢迎分享,转载请注明来源:内存溢出
if(!handle){MessageBox(_T("绑定端口失陵握败或者监听失败!"))return}sockaddr fromint fromlen=15flag=TRUEwhile(flag){HANDLE handlefrom=winSocketaccept(handle,&from,&fromlen)//fromlen值小于16就能接收初始化成功。 if(!handlefrom){//MessageBox(_T("启动接受失败!"))continue}BYTE buffer[1024]int sendlen=0sendlen=::winSocketRec(handle,buffer,fromlen,MSG_PEEK)//虚让接收语句一直无法接收数据。 if(sendlen<=0){//MessageBox(_T("接受信息失败!"))int error=0error=::WSAGetLastError()// WSAECONNRESETcontinue}sendlen=::winSocketSend(handle,buffer,fromlen)if(sendlen<=0){//MessageBox(_T("发送差汪局信息失败!"))continue}}::winSocketClose(handle)HANDLE winSocketbind(const TCHAR* szIp,unsigned short nPort,UINT connet)//根据ip和端口启动socket连接,最多连接数{LPSOCKET handle=new ENUMSOCKET()handle->skt=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)//连接socket,使用tcp发送字符流 //socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)if(handle->skt==INVALID_SOCKET)//连接成功{delete handlereturn NULL}//赋值ip值至socket char ip[64]={0}#ifdef _UNICODE size_t convert=0::wcstombs_s(&convert,ip,64,szIp,63)#else_strcpy_s(ip,64,szIp,63)#endifsockaddr_in addr={0}addr.sin_addr.S_un.S_addr=::inet_addr(ip)//设置ip addr.sin_family=AF_INET//设置网络服务 addr.sin_port=nPort//设置端口//建立连接if(bind(handle->skt,(sockaddr*)&addr,sizeof(addr))==SOCKET_ERROR)//连接失败{delete handleclosesocket(handle->skt)return NULL}::listen(handle->skt,connet)//连接至网络,返回改socket微信小程序weapp.socketio不稳定,断开不触发断开事件,可汪谈哪以在困码监听心跳事件设置回调处理,默认ping是自动发送,服务器会会pong,监听是否有接收到pong,一定时间没接收到且未侍激触发socket断开事件,可以判定socket已断开连接,此时执行重连
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
环境影响评价工程师:环境监测的基本程序
上一篇
2023-05-24
“mono.exe”是什么奇怪的文件,为什么会突然出现在我的电脑上?
下一篇
2023-05-24
评论列表(0条)