Привет, я новичок в программировании сокетов и языке C, у меня есть следующий код в моем клиенте:
char username[9];
if (!strcmp(msg, "USN")){
printf("\nUsername: \n");
scanf("%s", username);
write_server_msg(sockfd, username);
}
/* Writes a message to a client socket. */
void write_server_msg(int sockfd, char *msg)
{
int n = write(sockfd, msg, strlen(msg));
}
И у меня есть следующий код для получения моего сообщения на стороне сервера:
char *username;
username = recv_msg(cli_sockfd[num_conn]);
printf("[DEBUG] Client username is %s.\n", username);
/* Reads a message from the server socket. */
char *recv_msg(int sockfd)
{
char *msg;
int n = read(sockfd, msg, 9);
printf("[DEBUG] Received message: %s\n", msg);
return msg;
}
Если я введу тестовое имя пользователя 'john', то, что я получу в результате на стороне моего сервера, будет 'null', может кто-нибудь объяснить, где я ошибся?