使用send通过TCP流将文本文件中的数据从客户端从客户端发送到服务器时,如何一次发送所有数据,但一次仅发送4个字节?

问题描述

以下是我的client.cpp文件的摘录:

 from 

我是客户端-服务器编程的新手,而且我对C ++的了解还远远不够。

当我使用上面的代码时,它成功发送了inf,但显然不会一次发送4个字节的数据。

如果我如下所示修改了包含send()的行,而没有进行其他必要的更改,那么我肯定那是不正确的。

//Variables previously declared
char buffer[1024];
char sendbuffer[100];
int sockfd,b;

//Opens specified file
FILE *fp = fopen(argv[3],"rb"); 

while( (b = fread(sendbuffer,1,sizeof(sendbuffer),fp)) > 0 ) 
{
    send(sockfd,sendbuffer,b,0);
}


调试也很麻烦,因为当我对代码进行更改时,我必须不断模拟客户端与服务器的交互,这需要花费一些时间来建立。

一次发送4个字节的文本文件数据的最有效方法是什么?

还可以有人建议一种用于快速调试客户端-服务器程序的工具或方法吗?

让我知道是否需要更多信息。谢谢

解决方法

好吧,您可以尝试一次发送4个字节,它可能会工作,但是您无法控制流套接字实际发送多少个字节。您必须检查返回值。 我认为您根本不需要调试程序。日志记录更好,因为它不会像调试那样引入时间延迟,并且在网络世界中时间就是金钱。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...