繁体   English   中英

c TCP 中的插座我如何测试连接?

[英]Socket in c TCP how do i test connection?

对于一个学校项目,我必须使用 sockets 来创建服务器,我想我设法做到了,但我应该使用 Telnet 来测试它,每当我尝试时,我都会得到

telnet:连接到地址 0.0.0.0:连接被拒绝

所以我想我错了 IP 。

我的代码的简化版本仍然适用于一个连接是

int main(int argc , char *argv[])
{
    int sock;
    int fd = 0;
    int err = 0;
    struct sockaddr_in sock_data;
    socklen_t addr_size;
    char *path;

    path = get_current_dir_name();

    if (argc == 2)
        printf("%s", Usage);

    sock = socket(AF_INET , SOCK_STREAM , 0);
    if (sock == -1) {
        printf("Could not create socket");
        return (84);
    }

    memset(&sock_data, 0, sizeof(struct sockaddr_in));
    sock_data.sin_family = AF_INET;
    sock_data.sin_port = htons(5133);
    sock_data.sin_addr.s_addr = htonl(INADDR_ANY);
    printf("%s, %s, %s\n", path, sock_data.sin_addr, inet_ntoa(sock_data.sin_addr));

    if (bind(sock, (const struct sockaddr *) &sock_data, sizeof(sock_data)) == -1)
        printf("Error with binding\n");

    if (listen(sock, LISTEN_BACKLOG) == -1)
        printf("Error with listen");

    addr_size = sizeof(struct sockaddr_in);
    err = accept(sock, (struct sockaddr *) &sock_data, &addr_size);

    while ((sock = accept(sock, NULL, NULL)) < 0)
        err = 0;
    return 84;
}

我看到了这个链接: c 中的 TCP sockets这很清楚,但我仍然不明白我应该如何测试我的程序

我越是努力,我就越相信我一定犯了一个愚蠢的错误。

那你知道我哪里错了吗?

在您的 Telnet 命令中,您错过了一个端口。 commamd 应该像一个

telnet system_ip port

例如

telnet 192.168.1.1 5631

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM