小编Yuv*_*uvi的帖子

如何使用C中的Curl通过FTP恢复文件下载?

我试图使用FTP下载文件,如果连接终止,它之间应该从停止的地方恢复.我的问题是使用以下代码片段,如果我关闭连接然后再连接它,我能继续下载,但如果我在服务器站点这样做,那么我无法恢复下载,程序进入无限状态.

#include <stdio.h>

#include <curl/curl.h>

/*
 * This is an example showing how to get a single file from an FTP server.
 * It delays the actual destination file creation until the first write
 * callback so that it won't create an empty file in case the remote file
 * doesn't exist or something else fails.
 */

struct FtpFile {
  const char *filename;
  FILE *stream;
};

static size_t my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream)
{
  struct FtpFile *out=(struct …
Run Code Online (Sandbox Code Playgroud)

c ftp resume curl libcurl

8
推荐指数
1
解决办法
5426
查看次数

如何在本地使用UDP套接字广播消息?

我想在本地向许多应用程序广播消息.为此,我认为UDP套接字是最好的IPC,如果我是狼,请纠正我.

为此,我使用以下代码:

用于广播:

/*
** broadcaster.c -- a datagram "client" that can broadcast
*/

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>

#define SERVERPORT 4950    // the port users will be connecting to

int main(int argc, char *argv[])
{
    int sockfd;
    struct sockaddr_in their_addr; // connector's address information
    struct hostent *he;
    int numbytes;
    int broadcast = 1;
    //char broadcast = '1'; // if that doesn't work, try this …
Run Code Online (Sandbox Code Playgroud)

c sockets linux ipc

8
推荐指数
1
解决办法
4万
查看次数

获取错误java.lang.ArrayIndexOutOfBoundsException:RSA块的数据太多

我有私人pem密钥文件,我正在使用该文件来签名和加密数据.签名工作正常,我也能够在另一个平台上验证,但在加密数据时,我得到以下错误:

04-04 09:55:51.821: E/AndroidRuntime(2725): FATAL EXCEPTION: Thread-102
04-04 09:55:51.821: E/AndroidRuntime(2725): java.lang.ArrayIndexOutOfBoundsException: too much data for RSA block
04-04 09:55:51.821: E/AndroidRuntime(2725):     at com.android.org.bouncycastle.jce.provider.JCERSACipher.engineDoFinal(JCERSACipher.java:457)
04-04 09:55:51.821: E/AndroidRuntime(2725):     at javax.crypto.Cipher.doFinal(Cipher.java:1106)
04-04 09:55:51.821: E/AndroidRuntime(2725):     at com.example.testsigning.MainActivity.rsaEncrypt(MainActivity.java:185)
04-04 09:55:51.821: E/AndroidRuntime(2725):     at com.example.testsigning.MainActivity$1.run(MainActivity.java:51)
04-04 09:55:51.821: E/AndroidRuntime(2725):     at java.lang.Thread.run(Thread.java:856)
Run Code Online (Sandbox Code Playgroud)

以下是从私有文件中提取密钥的代码段:

// Read the file into string
String privKeyPEM = readFile("/mnt/sdcard/rsa_key");

privKeyPEM = privKeyPEM.replace("-----BEGIN RSA PRIVATE KEY-----", "");
privKeyPEM = privKeyPEM.replace("-----END RSA PRIVATE KEY-----", "");

// Base64 decode the data
byte[] encoded = Base64.decode(privKeyPEM, Base64.DEFAULT);

// PKCS8 decode …
Run Code Online (Sandbox Code Playgroud)

java encryption android rsa

6
推荐指数
1
解决办法
6464
查看次数

将'm_Mutex'声明为引用但未初始化错误

我试图在我的单吨类的静态功能之一上实现Mutex锁.但是得到这个错误:

$error:‘m_Mutex’ declared as reference but not initialized
$warning:warning: unused variable ‘m_Mutex’
Run Code Online (Sandbox Code Playgroud)

这是我的代码片段.

======== Commondefines.h ==========

/**
*@class LockBlock
*This class is used to provide Mutex Lock on thread.
*/
class LockBlock
{
    public:
        LockBlock(pthread_mutex_t *mutex)
        {
            lockMutex = mutex;
            pthread_mutex_lock(lockMutex);
        };


        ~LockBlock()
        {
            pthread_mutex_unlock(lockMutex);
            lockMutex = NULL;
        }


    private:
        pthread_mutex_t *lockMutex;
};
Run Code Online (Sandbox Code Playgroud)

======== MutexImplenation.h ======

#include "CommonDefines.h"

class MutexImplementation
{

  private:
     static pthread_mutex_t m_Mutex ;

  public:
     static void commonFunction();

};
Run Code Online (Sandbox Code Playgroud)

==== MutexImplementation.cpp ==========

// Initialize static member of class. …
Run Code Online (Sandbox Code Playgroud)

c++ linux mutex pthreads

5
推荐指数
1
解决办法
4724
查看次数

动态加载共享库时获取未定义的符号错误

undefined symbol动态加载库时遇到错误.这是我生成此错误的代码段:

int main ()
{

    void *lib_handle = NULL;

    MyClass* (*create)();
    void (*destroy)(MyClass*);
    char *error;


    lib_handle = dlopen ("./libshared.so", RTLD_LAZY);

    if (lib_handle == NULL) 
    {
        fprintf(stderr, "%s\n", dlerror());
        exit(1);

    } 

    create = (MyClass* (*)()) dlsym(lib_handle, "create_object");
    if ((error = dlerror()) != NULL)  
   {
      fprintf(stderr, "%s\n", error);
      exit(1);
   }

    destroy = (void (*)(MyClass*)) dlsym(lib_handle, "destroy_object");

    MyClass *myClass = (MyClass*) create;
    destroy(myClass);   

    dlclose(lib_handle);
}
Run Code Online (Sandbox Code Playgroud)

但是当我通过注释上面的代码并导出库路径来加载库时,一切都像魅力一样.

对于动态链接,我在命令提示符下使用以下命令.

g++ -Wl,--export-dynamic shared_user.cpp -ldl

任何帮助,将不胜感激.

c++ linux shared-libraries dynamic-loading

4
推荐指数
1
解决办法
2万
查看次数

对于curl程序,获取未定义的引用'clock_gettime'错误

Gretings,

我有交叉编译,OpenSSl,libssh2,最后是cURL,不知道为什么它只生成了静态库.无论如何,我试图通过链接所有三个库来运行示例ftpget.c程序,但我收到以下错误:

.../libcurl.a(timeval.o): In function 'curlx_tvnow':
timeval.c:(.text+0xfc): undefined reference to 'clock_gettime'
collect2: ld return  1 exit status
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个错误,还需要交叉编译任何其他库吗?

谢谢,Yuvi

c curl cross-compiling libcurl

3
推荐指数
1
解决办法
1万
查看次数

在 C++ UDP 套接字编程中获取“传输端点未连接”

Transport endpoint is not connected当我尝试通过以下方式关闭套接字时,我在 UDP 服务器程序中遇到错误shutdown(m_ReceiveSocketId, SHUT_RDWR); :以下是我的代码片段:

 bool UDPSocket::receiveMessage()
    {
        struct sockaddr_in serverAddr; //Information about the server
        struct hostent *hostp; // Information about this device 

        char buffer[BUFFERSIZE]; // Buffer to store incoming message
        int serverlen; // to store server address length

        //Open a datagram Socket
        if((m_ReceiveSocketId = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
        {
            Utility_SingleTon::printLog(LOG_ERROR,"(%s %s %d) UDP Client - socket() error",__FILE__,__func__, __LINE__);
            pthread_exit(NULL);
            return false;
        }


        //Configure Server Address.
        //set family and port
        serverAddr.sin_family = AF_INET; …
Run Code Online (Sandbox Code Playgroud)

c c++ sockets linux udp

2
推荐指数
1
解决办法
1万
查看次数