社区
网络编程
帖子详情
请教关于CSocket接受数据的问题,如果发送的数据有100K,,那么接受端的程序应该怎么写??
Ge
2003-12-10 10:36:41
是很现实的一个问题,那位高人,花点时间帮我解决一下,感激不尽。。。
我即使设置足够大的缓冲,也只能收到8640bit,,
...全文
28
7
打赏
收藏
微信扫一扫
点击复制链接
分享
举报
写回复
7 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
分包发送和接收.
打赏
举报
回复
赞
相关推荐
CSocket
发送
接受
长文件的例子
一个
关于
CSocket
发送
接受
长文件的例子
socket服务端接收和
发送
数据
c语言,socket编程,服务器端收到
数据
后,立即向客户端
发送
数据
,但客户端收不到?代码贴出,帮我分析一下。...
socket编程,服务器端收到
数据
后,立即向客户端
发送
数据
,但客户端收不到?代码贴出,帮我分析一下。这是服装器端代码:FD_ZERO(&fdR0);FD_SET(sockfd,&fdR0);while(socketstat!=SOCK_ERR){switch...
通过
CSocket
、CArchive实现Client端和Server端互发
数据
VC6.0下的基于
CSocket
的Server端和Client
端的
互相通信
TCP/IP
CSocket
客户端与服务器端通信
程序
c++语言制作的TCP/IP
CSocket
客户端与服务器端通信
程序
基于
CSocket
的GPRS
数据
中心
程序
使用VC开发的基于
CSocket
的GPRS
数据
中心
程序
,能够实现对gprs终端
发送
数据
的采集,使服务器与终端实现socket连接通讯。
Socket
发送
、
接受
数据
并解析
数据
///
发送
接受
数据
/// ///
发送
的
数据
/// <returns></returns> static byte[] SendAndReceive(string info) { ConnectSocket(); byte[] sendMsg = Encoding.GetEncoding("GBK").GetBytes(info); ...
实验6-基于
CSocket
的网络
程序
设计
1、实验目的与要求: (1)理解并掌握 MFC 类层次结构和基本编程...用户进入服务器
程序
后,用户应首先输入监听端口号,启动监听 等待客户机的连接请求,当客户机
端的
连接请求到来时,服务器接收并进入与客户机的会话。
Csocket
OnReceive接收
数据
部分(解决接收
数据
不全的
问题
+获取时间+将
数据
写
入文本文档)
void CDebugDlg::OnReceive() { BYTE cbDataBuffer[1024]; BYTE buff; int len,a,leng; CString b,c,d; CString str_HEX;... leng = m_ClientSocket-&... a++)//此循环解决了接收信息不全的
问题
{ len = m_Clie
c语言tcp按照网络字节序
发送
,
Csocket
编程,
数据
转为网络字节序的
问题
h..._网络编辑_帮考网...
bacunve高能答主12-08TA获得超过8002个赞不同的CPU
有
不同的字节顺序类型的字节顺序是存储在内存中的整数序列被称为宿主音序器最常见的,
有
两个1。小尾:低序字节存储在起始地址2。大端:高位字节存储在起始地址LE ...
CSocket
类
数据
接收存在的
问题
及Win32函数解决办法
CSocket
类
数据
接收存在的
问题
及Win32函数解决办法
MFC
CSocket
类
写
的 基本聊天室
程序
根据课本
写
的MFC
CSocket
类
写
的 基本聊天室
程序
。 服务端与多个客户端连接,实现聊天功能。
MFC+
CSocket
聊天室
程序
这是一个MFC聊天室
程序
的一部分,是服务器端
程序
,使用VS2010+
CSocket
编
写
。启动服务器端之后,可以实现和客户端端登陆连接,连接之后客户端之间可以收发消息。如果同时打开多个客户端
程序
并登陆连接服务器端,
那么
...
基于MFC的
CSocket
聊天室软件实现源
程序
可以直接运行,代码完整! 包含服务端和客户端,多个客户端可群聊!
Csocket
程序
客户端和服务器端
此为C++BUILDER6.0编
写
的socket通信
程序
,包含服务器端和客户端
程序
,简单明了。
基于
CSocket
类网络聊天
程序
设计
很好的学习MFC中网络编程
CSocket
类的
程序
,
程序
中
有
服务器端和客户端。
基于
CSocket
的TCP多人聊天
程序
基于
CSocket
的TCP多人聊天
程序
.
VC++
CSocket
有
连接TCP通信实例
VC++
CSocket
有
连接TCP通信实例,
程序
分为客户端和服务端,在服务端中设置服务器IP和端口,以及
发送
数据
的状态,客户端同样设置好服务器IP地址和端口,然后可以显示接收
数据
的进度和字节数是多少,运行服务端请点击...
MFC Socket
程序
(
CSocket
版)
基于MFC的
CSocket
程序
实例,初步了解如何使用
CSocket
。
关于
CSocket
类的Receive超时的
问题
转载:... 前几日碰到一
问题
,当
CSocket
的Receive阻塞时,如何进行超时处理。由于
程序
是在多线程中使用Socket通信,开始时是在主线程中用定时监测Receive函数,当...
c语言
接受
socket
发送
尾部
有
乱码,
关于
SOCKET C语言编程
引用楼主qq_25235869的回复:自己学教程用SOCKET
写
接受
网页源码的一个
程序
,然后及就是recv()函数接收的源码全都是乱码,我已经按网上说的确定了都是UFT-8的编码所以自认为不是编码的
问题
然后就不知道哪里出
问题
了求...
发帖
网络编程
加入
微信扫一扫
点击复制链接
1.8w+
社区成员
6.4w+
社区内容
VC/MFC 网络编程
社区管理员
申请成为版主
帖子事件
创建了帖子
2003-12-10 10:36
社区公告
暂无公告