cou*_*sto 0 c sockets tcp client-server
我正在尝试用 C 语言制作一个服务器和一个客户端(TCP),它们将充当一个简单的聊天系统。我对这些事情知之甚少,并且一直在参考这个服务器示例和这个客户端示例 。
注意:按照我有限的研究建议,我将 bzero() 和 bcopy() 更改为 memset() 和 memcpy(),但是在这两种情况下都发生了错误。除此之外,我自己的客户端仅在格式和输出方面与链接示例不同。
int sockfd, portno, n;
struct sockaddr_in serv_addr;
struct hostent * server;
char buffer[256];
if (argc < 3) {
fprintf(stderr,"usage %s hostname port\n", argv[0]);
exit(0);
}
portno = atoi(argv[2]);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) { perror("failed_socket_open"); exit(1); }
server = (struct hostent *)gethostbyname(argv[1]);
if (server == NULL) {
fprintf(stderr,"host isn't real, everything is a lie\n");
exit(0);
}
memset((char *) &serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
memcpy( (char*)server->h_addr,(char*) &serv_addr.sin_addr.s_addr, server->h_length );
Run Code Online (Sandbox Code Playgroud)
在此行 (37) 上:
memcpy( (char*)server->h_addr, (char*)&serv_addr.sin_addr.s_addr, server->h_length );
Run Code Online (Sandbox Code Playgroud)
有人告诉我:
client.c:37: error: dereferencing pointer to incomplete type
client.c:37: error: dereferencing pointer to incomplete type
Run Code Online (Sandbox Code Playgroud)
看来这是由于没有关于 server->h_length 应提供的大小的足够信息的结果。我是否缺少某些库函数,或者其他什么?
归档时间: |
|
查看次数: |
921 次 |
最近记录: |