Socket客户端,主线程中connect和send,另开一个线程专用于recv,debug版一切正常,但release版recv得不到正确的数据

hanchong hanchong 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
Socket客户端,主线程中connect和send,另开一个线程专用于recv,debug版一切正常,但release版recv得不到正确的数据,但我用抓包工具看到的数据明明是正常的,和debug版时一样,就是release的recv获取不到这个数据.
主要代码如下:


bool CBillClientApp::ConnectToServer()
{
sockaddr_in m_addr;

if(m_sock != NULL)
{
closesocket(m_sock);
m_sock = NULL;
}

if(m_sock == NULL)
{
m_sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
}

m_addr.sin_family = AF_INET;
m_addr.sin_addr.s_addr = inet_addr(m_sIP);
m_addr.sin_port = htons(m_uPort);

int ret = 0;
ret = connect(m_sock, (LPSOCKADDR)&m_addr, sizeof(m_addr));
if(ret == SOCKET_ERROR)
{
printf("连接失败");
closesocket(m_sock);
//WSACleanup();
return false;
}


CWinThread *g_Thread = new CWinThread((AFX_THREADPROC)ThreadServer,(LPVOID)(this));
if(!g_Thread->CreateThread())
{
CloseConnect();
return false;
}



return true;
}

//与服务器端连接线程,侦听服务器返回的消息
DWORD ThreadServer(LPDWORD lpdWord)
{
CBillClientApp *pCBillClientApp = (CBillClientApp *)lpdWord;
while(1)
{
PacketIN *recvBuf = new PacketIN();
int RecLen;
RecLen = recv(pCBillClientApp->m_sock,recvBuf->data,MAX_PACKET_SIZE,0);

if(RecLen > 1)
SendMessage(pCBillClientApp->m_hWnd,pCBillClientApp->m_uCmd,(WPARAM)recvBuf,0);
else
{
closesocket(pCBillClientApp->m_sock);
return 0;
}
}
}
...全文

相关推荐

socket通信实例客户端代码

vc2010开发的winsock编程实例,有连接服务器,断开连接,发送消息等。

egxsun

基于VC++ MFC与Socket的远程监控系统:从架构设计到实战避坑

网络通信是分布式系统的基石,其核心在于通过Socket建立可靠的数据通道,实现进程间跨网络的数据交换。理解TCP/IP协议栈与Socket编程原理,是构建稳定C/S架构应用的关键技术基础。这种能力在需要实时数据传输与控制的场景中价值巨大,例如工业监控、远程运维与教学演示。本文聚焦于一个经典案例:使用VC++ MFC与Windows Socket API开发一套高效的远程桌面监控系统。文中深入探讨了如何通过多线程模型处理Socket连接,并利用MFC消息机制解决后台线程与UI交互的核心难题,同时分享了屏幕捕获

weixin_30861797

ZeroMQ C++实战:从核心概念到聊天室应用开发

消息队列是构建分布式系统和实现进程间通信的核心技术之一,它通过解耦生产者和消费者来提升系统的可扩展性和可靠性。其工作原理基于异步通信模型,允许组件独立运行并通过消息传递进行协作。这一技术为构建高性能、松耦合的应用架构提供了基础支持,广泛应用于微服务通信、实时数据处理和任务分发等场景。在众多实现方案中,ZeroMQ作为一个轻量级、高性能的嵌入式网络库脱颖而出。它通过封装底层网络细节,提供了简洁的API,支持请求-应答、发布-订阅等多种通信模式,显著降低了开发复杂度。本文以C++为例,深入解析ZeroMQ的So

weixin_30394669

nanomsg1.1.4 vs2015 编译

nanomsg1.1.4 vs2015 编译,debug及release 的lib和dll文件

nalanhairuo

Winsock编程

Winsock编程基于VC6.0

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