connect()中的协议不支持地址族

connect()中的协议不支持地址族,c,sockets,unix,C,Sockets,Unix,下面的代码是TCP客户端的套接字编程示例 但当我运行此程序时,connect()将作为协议不支持的地址族重新调整。 我正在尝试通过套接字进行服务器-客户端通信。 首先我们向客户端发送一些字符串,然后从客户端读取一些字符串并打印出来 #include<stdio.h> #include<sys/types.h> #include<sys/socket.h> #include<sys/un.h> #define ADDRESS "mysocke

下面的代码是TCP客户端的套接字编程示例

但当我运行此程序时,connect()将作为协议不支持的地址族重新调整。 我正在尝试通过套接字进行服务器-客户端通信。 首先我们向客户端发送一些字符串,然后从客户端读取一些字符串并打印出来

#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/un.h>
#define ADDRESS     "mysocket"
char *str[3]={"dfgff","trer","ytt"};
int main()
{
char c;
FILE *fp;
register int i,s,ns,len;
int fromlen;
struct sockaddr saun,fsaun;
if((s=socket(AF_UNIX,SOCK_STREAM,0))<0)
{
perror("server:socket");
exit(1);
}


  unlink("mysocket");

    if (bind(s,&saun,sizeof(saun))<0)
    {
        perror("server: bind");
        exit(1);
    }
if (listen(s, 5) < 0)
    {
        perror("server: listen");
        exit(1);
    }

    if ((ns = accept(s, &fsaun, NULL)) < 0)
    {
        perror("server: accept");
        exit(1);
    }
 fdopen(ns, "r");

    /*
     * First we send some strings to the client.

    for (i = 0; i <3 ; i++)
        send(ns, str[i], strlen(str[i]), 0);

    /*
     * Then we read some strings from the client and
     * print them out.
     */
    for (i = 0; i <3; i++)
    {
        while ((c = fgetc(fp)) != EOF)
        {
            putchar(c);

            if (c == '\n')
                break;
        }
    }
close(s);
exit(0);
return 0;
}
#包括
#包括
#包括
#包括
#定义地址“mysocket”
char*str[3]={“dfgff”、“trer”、“ytt”};
int main()
{
字符c;
文件*fp;
寄存器int i、s、ns、len;
int fromlen;
结构sockaddr saun,fsaun;

如果((s=socket(AF_UNIX,SOCK_STREAM,0))您的代码中有未定义的行为,因为您在使用结构之前没有初始化它们(主要示例:在调用
bind
时没有初始化它,您就使用
saun
)。还有更多这样的问题。我没有看到对
connect()的任何调用
。显示的代码看起来像服务器代码,而不像客户端。OT:
c
应该声明为
int
而不是
char
。这看起来像服务器代码。
connect
在哪里?事实上,您已经拥有了
bind
listen
accept
的所有功能。