Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 通过套接字编程发送图像文件(jpeg、png)的提示/示例?_C++_Qt_Sockets_File Transfer - Fatal编程技术网

C++ 通过套接字编程发送图像文件(jpeg、png)的提示/示例?

C++ 通过套接字编程发送图像文件(jpeg、png)的提示/示例?,c++,qt,sockets,file-transfer,C++,Qt,Sockets,File Transfer,我听说我们可以通过套接字发送带有二进制的图像文件。。。 但我不知道如何将图像文件转换成二进制文件,甚至不知道如何通过套接字发送它 希望有人能举个简单的例子吗?或者给我指出正确的方向:)我也只是在gui中使用QT,但没有使用QT套接字编程 非常感谢:我真的很感激 问题@djc: 如何获取映像的目录路径,并在该映像上使用send命令?我基本上使用C++。但这也是一个我已经有一段时间的问题。您拥有的任何图像文件都已经是二进制的。您可以通过套接字发送它们。您需要知道或让用户告诉您找到图像文件的路径 一

我听说我们可以通过套接字发送带有二进制的图像文件。。。 但我不知道如何将图像文件转换成二进制文件,甚至不知道如何通过套接字发送它

希望有人能举个简单的例子吗?或者给我指出正确的方向:)我也只是在gui中使用QT,但没有使用QT套接字编程

非常感谢:我真的很感激


问题@djc:


如何获取映像的目录路径,并在该映像上使用send命令?我基本上使用C++。但这也是一个我已经有一段时间的问题。

您拥有的任何图像文件都已经是二进制的。您可以通过套接字发送它们。

您需要知道或让用户告诉您找到图像文件的路径

一旦你有了它,然后你逻辑地打开文件,把它读入缓冲区,然后在套接字上写缓冲区,最后关闭文件(总是关闭你打开的,释放你分配的)。然而,还有一些细节需要分类——比如接收端如何知道后面的数据是一个图像,以及它有多大(这样它就知道你什么时候发送了所有的数据)。您的协议可能会定义一个将消息标识为图像的位模式(一个或两个字节),然后可能会使用四个字节指定图像的大小,后跟正确的字节数。您可以使用基于POSIX的
stat()
系统调用来查找文件的大小。或者,您可以发送一系列包含图像部分的数据包(同样使用类型-这次是“图像数据包”而不是“图像”)加上数据包长度(可能只有16位无符号整数,最大大小为65535字节),再加上最后一段的“结束图像数据包”。这对发送者来说可能更容易;如果数据直接进入文件,对接收者来说很容易,但如果接收者需要内存中的图像,则会造成混乱。

另请参见:和: