您是套接字编程和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”,有人可以解释我哪里出了问题吗?