クライアントからサーバープログラムにオブジェクトファイルを送信する必要があります。 ファイルを読み込み、バッファに格納し、バッファをsslに送り、サーバプログラムのファイルに書き出しました。 これは.oファイルでは機能しませんでした。これはELFを出したものです。オブジェクトファイルを.slとソケット経由で送信する方法
この私のコードの一部
読み取り
void readFile(char filename[])
{
FILE *input_file;
char line[BUFSIZ];
input_file = fopen(filename, "r");
if(input_file == NULL){
printf("cannot open input_file '%s'\n", filename);
exit(EXIT_FAILURE);
}
while (fgets(line,sizeof line, input_file) != NULL) {
for(int i = 0; i<strlen(line); i++){
current_file[i] = line[i];
}
}}
クライアントがファイル
readFile(filename);
ctx = InitCTX();
server = OpenConnection(hostname, atoi(portnum));
ssl = SSL_new(ctx); /* create new SSL connection state */
SSL_set_fd(ssl, server); /* attach the socket descriptor */
if (SSL_connect(ssl) == FAIL) /* perform the connection */
ERR_print_errors_fp(stderr);
else
{
printf("Connected with %s encryption\n", SSL_get_cipher(ssl));
ShowCerts(ssl); /* get any certs */
SSL_write(ssl, current_file, strlen(current_file));
を送信ファイルであるが、それは、オブジェクトファイルを読み込み、その後、バッファに保管することは可能ですか?
これらのファイルを送信する他の方法はありますか?
まず、オブジェクトファイルはバイナリで、 'fopen'に' b'フラグを付けて開く必要があります。第2に、バイナリファイルを読むときに 'fgets'を使うことはできません。その関数はデータをテキストとして解釈し、バイナリデータの値0(文字列終了に使用)または10(改行文字およびバイナリファイル線を持たない)とおそらく他の値もあります。ファイルを読むには 'fread'を使います。 –