c++ recv()问题。高手进!

供稿:hz-xin.com     日期:2025-01-15
C++ recv函数的问题

因为服务器是一对多客户端;
而对于客户端来说,是1对1服务器;
所以,服务器在等待某个客户端的时候,去执行其他客户端的请求。

你想问啥啊。。。??这不是socket里的么

是你写的有问题,socket的recv遇到错误返回的SOCKET_ERROR你也加到recvlen中去了,一直加,recvlen < i_messagelen永不成立,死循环。

int recv(SOCKET h_handle,char *pc_buff,
int i_massagelen)//h_hanle发送方的套接字, i_massagelen是数据长度
{
int recvlen = 0;
while(recvlen<i_massagelen)
{
int result = recv(h_handle,pc_buff+recvlen,i_massagelen-recvlen,0);
if (result <= 0) break;
recvlen+=result;
}
return recvlen;
}

c++ recv()问题。高手进!
是你写的有问题,socket的recv遇到错误返回的SOCKET_ERROR你也加到recvlen中去了,一直加,recvlen < i_messagelen永不成立,死循环。int recv(SOCKET h_handle,char *pc_buff,int i_massagelen)\/\/h_hanle发送方的套接字, i_massagelen是数据长度 { int recvlen = 0;while(recvlen<i_massage...

求C++高手 帮忙看看recv函数第2和3参数是干什么
》recv函数第2和3参数是干什么的 第二参数是接收数据缓冲区的地址,第三参数是这个缓冲区最多能放多少个字节 》和在for里面为什么需要加recved+=recving; 这段 因为要接受的文件比较大,每次recv读出来的数据最多(也可能少)是recv第三个参数那么多个字节(受缓冲区大小限制),也就是多次读取数据...

C++ recv函数的问题
因为服务器是一对多客户端;而对于客户端来说,是1对1服务器;所以,服务器在等待某个客户端的时候,去执行其他客户端的请求。

vc++网络编程recvfrom函数问题?
1,创建套接字(socket)。2,将套接字绑定到本地地址和端口上(bind)。3,等待接受数据(recvfrom)。4,关闭套接字。#include <iostream.h> include <stdio.h> include <Winsock2.h> \/\/必须加载套接字的头文件,还必须在工程的链接处添加 Ws2_32.lib int main(){ WORD wVersionRequested;WS...

vc++网络编程recvfrom函数问题?
端口号设置为0),系统会自动分配一个 sendto必须要指定端口号的,因为ip:port才是网络服务的惟一标识一般客户端的话可以让系统自动分配端口,服务端得话就必须指定端口 UDP协议两边都要用指定的端口号,不然消息不知道发送到哪里去到网上百度一下。值得信赖.2011\/10\/1 17:46:01 ...

关于MPI_Bcast的问题,其他进程无法执行new操作?
int *recvdata=new int[size1]; MPI_Recv(&recvdata, size1, MPI_INT, 0, tag, MPI_COMM_WORLD, &status);}MPI_Finalize(); 多谢了! 展开  我来答 分享 微信扫一扫 新浪微博 QQ空间 举报 浏览21 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 mpi_...

帮忙读下这个简单CV++程序,谢谢
这个是TCP客户端程序,用于连接到时间服务器,然后收服务器发出的报文(对时报文).1.一开始绑定个SOCKET,说明是TCP的,SOCKET s = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);2.connect(s, (sockaddr*)&servAddr, sizeof(servAddr))就是去和服务器连接,建立TCP握手;3.recv(s, (char*)&...

vc++socket通信数据丢失问题!!
int nRecv = recv(cliSock, buf, sizeof(CStock)*(N+2), 0);你没有判断到底返回了多少数据,而只是检查了《=0.你怎么知道数据是否接受完毕?另外你还要确定,对方是否采取了优雅关闭。否则有可能丢失数据。你可以参考一下MSDN的示例:--- include <winsock2.h> include <stdio.h> define DEFA...

C++ Builder中Socket 套接字问题
retVal=recv(sClient,buf,sizeof(buf),0);if(SOCKET_ERROR==retVal){ closesocket(sServer);closesocket(sClient);WSACleanup();return -1;\/\/接收数据失败 } CString %%2(buf);closesocket(sServer);closesocket(sClient);WSACleanup();return 0;} CWinThread *pThread=AfxBeginThread(Listen,&...

vc++一个进程负责写入共享区,然后多个进程读取,会有什么异常吗?_百度...
在一个阻塞套接字上调用任何 WinSock API 函数(accept()\/recv()\/send()),都会耗费或长或短的时间“等待”返回,这会阻塞调用线程。直到有点数据可读或可写时,这种调用才返回。阻塞模式的优点是符合时序,容易入手。缺点也是显而易见的,假设这样一种情景,一个线程中要处理多个客户(套接字A、B...