我正在尝试将图像编码为 base64 编码并将其发送到我正在创建的 C++ 服务器。我正在使用 PHP 来做到这一点。
因此,PHP 代码是客户端,C++ 代码是监听服务器。
问题出现在大图像上;例如 70KB 图像。它在小图像上正常工作;比如5KB。
发生的错误是:警告::socket_write() [function.socket-write]
无法写入套接字 [0]:在数据报套接字上发送的消息大于内部消息缓冲区或其他网络限制,或者用于接收数据报的缓冲区小于数据报本身。
不把图像分成几个小包可以解决这个问题吗?
我只需要发送数据包为 1MB。
这是我正在使用的代码:
$con=file_get_contents("image url");
$binary_data=base64_encode($con);
$host = "192.168.35.54";
$port = 1060;
$message = $binary_data;
// No Timeout
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP) or die("Could not create socket\n");
socket_connect($socket, $host, $port) or die("Could not connect to server\n");
socket_write($socket, $message, strlen($message)) or die("Could not send data to server\n");