c本地主机拒绝TCP套接字连接

耶稣·马丁·贝兰加

我正在尝试在本地主机中创建客户端/服务器程序,但是客户端无法连接到服务器,并且我不知道自己在做什么错。

我尝试调试程序,所有参数似乎都正常。服务器确实绑定,连接,监听和接受。

使用客户端代码会得到connect: Invalid argument错误。客户端(我从控制台通过调用客户端./client localhost):

#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>

int main(int argc, char * argv[])
{
    int cd;
    struct hostent *hp;
    struct sockaddr_in s_ain;
    unsigned char byte;

    hp = gethostbyname(argv[1]);
    bzero((char *)&s_ain, sizeof(s_ain));
    s_ain.sin_family = AF_INET;
    memcpy(&(s_ain.sin_addr),  hp->h_addr, hp->h_length);
    s_ain.sin_port = htons(1025);

    cd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if( connect(cd, (struct sockaddr*) &s_ain, sizeof(s_ain) == -1) ) {
        fprintf(stderr, "connect: %s\n", strerror(errno));
        return -1;
    }       

    printf("%s\n", "IT WORKS!");
    close(cd);
    return 0;
}

服务器:

#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <stdio.h>

int main(void)
{
    int sd, cd;
    socklen_t size;     
    unsigned char byte;
    struct sockaddr_in s_ain, c_ain;    

    sd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

    bzero((char *)&s_ain, sizeof(s_ain));
    s_ain.sin_family = AF_INET;s_ain.sin_family = AF_INET;
    s_ain.sin_addr.s_addr = INADDR_ANY;
    s_ain.sin_port = htons(1025);

    if(bind(sd, (struct sockaddr *)&s_ain, sizeof(s_ain)) == -1) {
        fprintf(stderr, "%s\n", "err bind");
        return -1;
    }

    if(listen(sd, 5) == -1) {
        fprintf(stderr, "%s\n", "err listen");
        return -1;
    }

    while(1) {
        size = sizeof(c_ain);
        cd = accept(sd, (struct sockaddr *)&c_ain, &size);
        printf("%s\n", "IT WORKS !");
    }
}
伊利亚·艾维拉(IljaEverilä)

您的示例中有错字,或者

if( connect(cd, (struct sockaddr*) &s_ain, sizeof(s_ain) == -1) ) {
    fprintf(stderr, "%s\n", "err connect");
    return -1;
}

括号有误。目前,您将调用connectsocklen_t addrlen作为0它应该读

if( connect(cd, (struct sockaddr*) &s_ain, sizeof(s_ain)) == -1) {
    fprintf(stderr, "%s\n", "err connect");
    return -1;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

与本地主机的套接字连接超时

来自分类Dev

连接到本地主机上的套接字

来自分类Dev

套接字无法连接到本地主机

来自分类Dev

SSh:连接被拒绝到本地主机

来自分类Dev

Windows SSH的本地主机:连接被拒绝

来自分类Dev

SSh:连接被拒绝到本地主机

来自分类Dev

套接字客户端始终连接到本地主机

来自分类Dev

套接字客户端始终连接到本地主机

来自分类Dev

如何通过Unix套接字将PhpMyAdmin连接到本地主机?

来自分类Dev

TCP套接字拒绝连接错误#10061

来自分类Dev

C# udp 套接字不接收来自本地主机的数据

来自分类Dev

nodejs https错误:套接字与本地主机挂起

来自分类Dev

Rails邮件程序连接被拒绝-本地主机

来自分类Dev

Glassfish Netbeans附加到本地主机“连接被拒绝”

来自分类Dev

WebPack devServer-本地主机拒绝连接

来自分类Dev

RMI连接在本地主机上被拒绝

来自分类Dev

设置本地主机并收到连接拒绝错误

来自分类Dev

访问被拒绝的本地主机

来自分类Dev

SSH:连接到主机本地主机端口22:连接被拒绝

来自分类Dev

套接字连接被拒绝:telnet:无法连接到远程主机:连接被拒绝

来自分类Dev

套接字TCP连接

来自分类Dev

尝试连接到本地主机套接字服务器时,Web浏览器上的“连接已重置”

来自分类Dev

WebLogic Server 12c无法登录本地主机异常weblogic.nodemanager.NMConnectException:连接被拒绝

来自分类Dev

Okhttp无法连接到本地主机端点,将引发连接失败:ECONNREFUSED(连接被拒绝)

来自分类Dev

Ubuntu 15.10 elasticsearch 2.3无法连接到本地主机端口9200:连接被拒绝

来自分类Dev

curl(7):无法连接到本地主机端口8000:连接被拒绝

来自分类Dev

Gitlab Piepline + docker:(7)无法连接到本地主机端口9000:连接拒绝

来自分类Dev

连接被拒绝 - “本地主机”端口 25 的连接(2)chef devops

来自分类Dev

Podman Play不会提取本地主机图像:获取“ https:// localhost / v2 /”:拨打tcp [:: 1]:443:connect:连接被拒绝

Related 相关文章

  1. 1

    与本地主机的套接字连接超时

  2. 2

    连接到本地主机上的套接字

  3. 3

    套接字无法连接到本地主机

  4. 4

    SSh:连接被拒绝到本地主机

  5. 5

    Windows SSH的本地主机:连接被拒绝

  6. 6

    SSh:连接被拒绝到本地主机

  7. 7

    套接字客户端始终连接到本地主机

  8. 8

    套接字客户端始终连接到本地主机

  9. 9

    如何通过Unix套接字将PhpMyAdmin连接到本地主机?

  10. 10

    TCP套接字拒绝连接错误#10061

  11. 11

    C# udp 套接字不接收来自本地主机的数据

  12. 12

    nodejs https错误:套接字与本地主机挂起

  13. 13

    Rails邮件程序连接被拒绝-本地主机

  14. 14

    Glassfish Netbeans附加到本地主机“连接被拒绝”

  15. 15

    WebPack devServer-本地主机拒绝连接

  16. 16

    RMI连接在本地主机上被拒绝

  17. 17

    设置本地主机并收到连接拒绝错误

  18. 18

    访问被拒绝的本地主机

  19. 19

    SSH:连接到主机本地主机端口22:连接被拒绝

  20. 20

    套接字连接被拒绝:telnet:无法连接到远程主机:连接被拒绝

  21. 21

    套接字TCP连接

  22. 22

    尝试连接到本地主机套接字服务器时,Web浏览器上的“连接已重置”

  23. 23

    WebLogic Server 12c无法登录本地主机异常weblogic.nodemanager.NMConnectException:连接被拒绝

  24. 24

    Okhttp无法连接到本地主机端点,将引发连接失败:ECONNREFUSED(连接被拒绝)

  25. 25

    Ubuntu 15.10 elasticsearch 2.3无法连接到本地主机端口9200:连接被拒绝

  26. 26

    curl(7):无法连接到本地主机端口8000:连接被拒绝

  27. 27

    Gitlab Piepline + docker:(7)无法连接到本地主机端口9000:连接拒绝

  28. 28

    连接被拒绝 - “本地主机”端口 25 的连接(2)chef devops

  29. 29

    Podman Play不会提取本地主机图像:获取“ https:// localhost / v2 /”:拨打tcp [:: 1]:443:connect:连接被拒绝

热门标签

归档