socket 服务器端程序recv() 出现10038错误

saygoodbye7 saygoodbye7 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
struct regular regularinfo;

bool Server::initServer(ZTcpSocket* socket)
{
server.bind("172.11.2.50",1111);
server.listen(5);
if(server.accept(socket))
{
return true;
}
}


bool simfun::initsim(ZTcpSocket* socket)
{

while(1)
{

if(socket->readable(1000) == 0)
continue;
int ret=socket->read(buff,sizeof(regular));
if (ret<=0)
{
continue;

}
memcpy(®ularinfo,buff,sizeof(regularinfo));
if (((regularinfo.BEG==beg)&&(regularinfo.END==end))&&((regularinfo.CODE==C_RCU_NA_3)||(regularinfo.CODE==C_RFB_NA_3)))
{
if (regularinfo.CODE==C_RCU_NA_3)
{
pd=0;
cout<<"pd=0";
}
else
{
pd=1;
cout<<"pd=1";
}
memset(buff,0,sizeof(buff));
regularinfo.CODE=M_CON_NA_3;
memcpy(buff,®ularinfo,sizeof(regularinfo));
ret=socket->write(buff,sizeof(regularinfo));
cout<<"已发送"<<ret<<endl;
break;
}
memset(buff,0,sizeof(buff));

}
memset(buff,0,sizeof(buff));
return true;

}

bool simfun::initsimu(ZTcpSocket* socket)
{
if (!initsim(socket))
{
cout<<"初始化过程-主站通信单元发生错误";
}
cout<<"初始化过程-主站通信单元成功"<<endl;
while(1)
{
此处标红=》int ret1=socket->read(buff,sizeof(regular));
cout<<ret1<<endl;
if (ret1<=0)
{
switch (WSAGetLastError())
{
case WSANOTINITIALISED: printf("not initialized\n"); break;
case WSASYSNOTREADY: printf("sub sys not ready\n"); break;
case WSAHOST_NOT_FOUND: printf("name server not found\n"); break;
case WSATRY_AGAIN: printf("server fail\n"); break;
case WSANO_RECOVERY: printf("no recovery\n"); break;
case WSAEINPROGRESS: printf("socket blocked by other prog\n"); break;
case WSANO_DATA: printf("no data record\n"); break;
case WSAEINTR: printf("blocking call canciled\n"); break;
case WSAEPROCLIM: printf("limit exceeded\n");
case WSAEFAULT: printf("lpWSAData in startup not valid\n");
default: printf("unknown error id = %d\n",WSAGetLastError()); break;
};
continue;
}

....................省略
}


main.cpp
void main()
{
Server s;
simfun sim;
sim.socket = new ZTcpSocket;
s.initServer(sim.socket);
sim.initsimu(sim.socket);
........
省略



}



小弟不才 写了个模拟器 在标红的地方读不到东西了 返回值是-1 getlasterror返回的是10038
各路大神新手求解 只是写了个很简单的单连接 为什么socket就断了呢
...全文

相关推荐

关于wsagetlasterror返回值

关于wsagetlasterror返回值,包括了所有的错误返回值,应该对大家会有帮助

编程小树

MFC Socket接收不到数据的系统性排查与解决方案

Socket网络编程是构建客户端/服务器应用的基础技术,它通过操作系统提供的套接字接口实现进程间通信。其核心原理是在TCP/IP协议栈上建立连接、传输数据流。在Windows平台,MFC框架通过CAsyncSocket和CSocket类对原生WinSock API进行了面向对象封装,简化了异步事件处理和阻塞式调用,提升了开发效率。然而,这种封装也引入了特有的复杂性,尤其是在事件驱动模型、缓冲区管理和线程同步方面。当程序逻辑正确但Socket接收端却陷入沉默时,这通常不是单一故障,而是网络层、MFC事件机制与

weixin_33738555

电力系统风储联合一次调频仿真模型(Simulink仿真实现)

内容概要:本文介绍了一种基于Simulink平台构建的电力系统风储联合一次调频仿真模型,旨在实现风力发电与储能系统在电网频率调节中的协同响应。模型综合考虑风电功率波动特性、储能系统的充放电控制策略及其在频率偏差下的协调控制机制,通过引入一次调频控制环节,使风储系统具备类似传统同步机组的惯性与阻尼响应能力。仿真系统涵盖了频率信号检测、功率分配算法、储能出力限值与恢复控制等关键模块,能够有效评估风储联合系统对电网频率波动的抑制效果,并验证控制策略的技术可行性与动态性能。; 适合人群:具备电力系统分析、新能源并网控制或自动控制理论基础,从事风电、储能系统集成、微电网控制或电力系统稳定研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究高比例可再生能源接入背景下电网频率稳定性问题;②验证风储联合参与一次调频的协调控制策略有效性;③支撑相关科研课题的仿真验证、学术论文撰写及工程项目的技术方案设计。; 阅读建议:建议结合Matlab/Simulink环境实际运行模型,深入理解各功能模块的参数配置与控制逻辑,可通过调整控制参数或拓扑结构进一步开展二次调频、多能互补协调优化或构网型控制策略的拓展研究。

yyds_2201

风光储共交流混合微电网并网发电系统仿真(Simulink仿真实现)

内容概要:本文围绕风光储共交流混合微电网并网发电系统的仿真展开,基于Simulink平台构建了集风力发电、光伏发电与双向储能系统于一体的三相并网发电模型,实现了多能源协同运行控制。系统涵盖了光伏Boost升压、储能充放电管理、并网逆变控制等关键技术环节,重点研究了微电网在并网模式下的能量协调控制策略及其动态响应特性。通过仿真分析验证了系统在不同工况下的稳定性与可靠性,为实际工程应用提供了有效的技术支撑。文中还引入智能优化算法(如PSO-DWA)进行参数优化,并结合MATLAB/Simulink完成完整的建模与仿真分析流程,提升了系统控制精度与运行效率。; 适合人群:具备电力系统、新能源发电或自动化等相关专业背景,熟悉MATLAB/Simulink仿真工具,从事微电网、分布式能源系统研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展风光储混合微电网的并网控制策略研究;②学习多能源系统在Simulink中的建模与仿真方法;③掌握储能系统协调控制与能量管理策略的设计与实现;④为科研项目、毕业设计或实际工程项目提供仿真验证与技术支持。; 阅读建议:建议读者结合文中提供的完整资源(如仿真模型、参考文献等)进行实践操作,重点关注系统建模流程与控制策略实现细节,并通过调整参数观察仿真结果变化,以深入理解微电网的能量协调机制与动态运行特性。

荔枝科研社

罗技驱动lghub-V2021.11.1775(2021‎年‎10‎月‎9‎日数字签名)

罗技驱动lghub_V2021.11.1775(2021‎年‎10‎月‎9‎日数字签名)

NolanDing
评论 7
收藏 已收藏
分享
返回顶部
saygoodbye7
网络编程 18,356 成员 64,161 内容