サーバーとクライアント プログラムとの単純な TCP 接続があります。メッセージとして渡すために、サーバーとクライアントの両方で単純な構造体を作成しました。
struct {int c; char** v;} msg;
クライアントからargcとargv(端末からの入力)を送信しようとしています:
int main(int argc, char **argv){
...
msg.c = argc;
msg.v = argv;
sendto(Socket, &msg, sizeof(msg), 0, (struct sockaddr *)&input, sizeof(input));
サーバーに送信されると、msg.c を呼び出して番号を取得し、それを使用できますが、文字列の配列を使用しようとすると、セグ フォールトが発生します。
recvfrom(Socket, &msg, sizeof(msg), 0, (struct sockaddr *)&input, &sizep);
printf("%d\n", msg.c);
printf("%s\n", msg.v[2]);
これを 1 つだけ試してみましたchar *
が、文字列を送信することもできませんでした。
私は何を間違っていますか?