社区
网络编程
帖子详情
请教关于CSocket接受数据的问题,如果发送的数据有100K,,那么接受端的程序应该怎么写??
Ge
2003-12-10 10:36:41
是很现实的一个问题,那位高人,花点时间帮我解决一下,感激不尽。。。
我即使设置足够大的缓冲,也只能收到8640bit,,
...全文
63
7
打赏
收藏
请教关于CSocket接受数据的问题,如果发送的数据有100K,,那么接受端的程序应该怎么写??
是很现实的一个问题,那位高人,花点时间帮我解决一下,感激不尽。。。 我即使设置足够大的缓冲,也只能收到8640bit,,
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Healer
2003-12-14
打赏
举报
回复
阻塞不好...
vcar
2003-12-13
打赏
举报
回复
对于数据量大的时候,是用非阻塞方式会等待很长的时间,而且函数不会返回。
Ge
2003-12-13
打赏
举报
回复
非常感激还有个问题,socket中的阻塞机制是怎么样的啊,
smallfool
2003-12-10
打赏
举报
回复
循环接收。
BOOL CHSPacket::ReadBody(CHSConnection *pConnection)
{
ASSERT(pConnection);
CHSSocket *pSocket = pConnection->GetSocket();
ASSERT(pSocket);
if ( m_nLength > 0 && m_PacketStatus >= PS_READHEADEROK )
{
if ( m_pData == NULL )
{
try
{
m_pData = new TCHAR[m_nLength];
// 清 0
ZeroMemory(m_pData, m_nLength);
m_nBytesRead = 0;
m_PacketStatus = PS_READINGBODY;
}
catch (CMemoryException *e)
{
e->ReportError();
e->Delete();
return FALSE;
}
}
ASSERT(m_pData);
int nBytesRead = pSocket->Receive(m_pData + m_nBytesRead, m_nLength - m_nBytesRead);
if ( SOCKET_ERROR == nBytesRead )
{
if (WSAEWOULDBLOCK == pSocket->GetLastError())
{
// 继续进行接收
pSocket->AsyncSelect( FD_READ );
}
return FALSE;
}
m_nBytesRead += nBytesRead;
if ( m_nBytesRead < m_nLength )
{
pSocket->AsyncSelect( FD_READ );
return FALSE;
}
m_PacketStatus = PS_READBODYOK;
}
return TRUE;
}
sumkeen
2003-12-10
打赏
举报
回复
你不要指望一次收到所有的数据。
最好是分次接受,并且将每次接收的数据量垒加。
如果最后的接收数据量记数等于要接收的,那么肯定不会错了。
如:
nTotalReceive=0;
do
{
nReceive=m_socket.Receive(m_srcBuffer+nTotalReceive,1024);
nTotalReceive+=nReceive;
}
while(nTotalReceive<nTotal && nReceive>0)
ISunwu
2003-12-10
打赏
举报
回复
循环接收,知道收够为止.
fuxf
2003-12-10
打赏
举报
回复
分包发送和接收.
C
Socket
发送
接受
长文件的例子
`C
Socket
`类是MFC对
Socket
接口的封装,提供了创建、连接、监听、
接受
和
发送
数据
等基本功能。在创建`C
Socket
`对象后,我们可以通过调用`Create()`方法来初始化
Socket
,并通过`Connect()`或`Accept()`方法进行连接或...
通过C
Socket
、CArchive实现Client端和Server端互发
数据
在`C
Socket
`中,你可以创建、连接、监听、
接受
和
发送
数据
,从而实现网络通信的基本功能。 1. 创建和绑定套接字: 在服务器端,首先需要创建一个`C
Socket
`对象,并调用`Create()`函数来初始化套接字。接着,使用`...
C
socket
程序
客户端和服务器端
在IT领域,网络通信是不可或缺的一部分,而C
socket
则是C++中进行套接字编程的常用库,用于实现客户端和服务器端之间的
数据
交换。本文将深入探讨C
socket
在C++Builder6.0环境下如何用于创建服务器端和客户端
程序
,以及...
基于C
Socket
的GPRS
数据
中心
程序
本文将深入探讨一个基于C
Socket
的GPRS
数据
中心
程序
,该
程序
由VC++开发,用于实现服务器与GPRS终端之间的
数据
采集和通信。首先,我们需要理解几个关键概念: 1. **GPRS(General Packet Radio Service)**:GPRS是一...
C
Socket
类
数据
接收存在的
问题
及Win32函数解决办法
然而,`C
Socket
`类在处理
数据
接收时可能会遇到一些
问题
,这通常与缓冲区管理、同步机制以及错误处理相关。本文将深入探讨这些
问题
,并提出使用Win32 API函数作为替代解决方案。 首先,`C
Socket
`类的
数据
接收是通过`...
网络编程
18,358
社区成员
64,186
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章