【问题标题】:Connecting Server-Client连接服务器-客户端
【发布时间】:2014-04-14 18:19:04
【问题描述】:

我是套接字编程的新手。每次我运行客户端程序时,它都会显示“无法连接到服务器”。谁能告诉我我在哪里犯了错误。 任何帮助将不胜感激。

这是client.c

#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>

int main(void)
{
int host_socket=0;
struct sockaddr_in host_addr,serv_addr;
char sendbuffer[1024];
char recvbuffer[1024];

host_socket = socket(AF_INET,SOCK_STREAM,0);
host_addr.sin_family = AF_INET;
host_addr.sin_port = htons(5000);
host_addr.sin_addr.s_addr = inet_addr("127.0.0.1");

if(connect(host_socket,(struct sockaddr *)&serv_addr, sizeof(serv_addr))<0)
{
    printf("could not connect to server !!");
    return -1;
}
strcpy(sendbuffer,"127.0.0.1");

send(host_socket,sendbuffer,strlen(sendbuffer),0);

recv(host_socket,recvbuffer,sizeof(recvbuffer),0);
fputs(recvbuffer,stdout);

return 0;
    }

这是 server.c

#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>

int main(void)
{
int serv_socket=0;
struct sockaddr_in serv_addr,host_addr;
char recvbuffer[1024];
char sendbuffer[1024];
socklen_t add_len;

serv_socket = socket(AF_INET,SOCK_STREAM,0);
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(5000);
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);


bind(serv_socket,(struct sockaddr*)&serv_addr,sizeof(serv_addr));

if(listen(serv_socket,10)<0)
{printf("no listening");}

add_len = sizeof(host_addr);
accept(serv_socket,(struct sockaddr*)&host_addr,&add_len);
recv(serv_socket,recvbuffer,sizeof(recvbuffer),0);
strcpy(sendbuffer,recvbuffer);
send(serv_socket,sendbuffer,sizeof(sendbuffer),0);

return 0;
 }

【问题讨论】:

    标签: c sockets


    【解决方案1】:
    host_addr.sin_family = AF_INET;
    host_addr.sin_port = htons(5000);
    host_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    
    if(connect(host_socket,(struct sockaddr *)&serv_addr, sizeof(serv_addr))<0)
    {
        printf("could not connect to server !!");
        return -1;
    }
    

    您将服务器参数放在host_addr 中,但您的connect 调用使用未初始化的serv_addr

    【讨论】:

      猜你喜欢
      • 2016-07-06
      • 1970-01-01
      • 2020-06-26
      • 2012-03-27
      • 2012-05-22
      • 2016-12-10
      • 2020-03-03
      • 2021-08-12
      • 1970-01-01
      相关资源
      最近更新 更多