加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 从int到socklen的无效转换

发布时间:2020-12-14 02:11:39 所属栏目:Linux 来源:网络整理
导读:下面是我的 Linux代码. 我正在实现客户端/服务器应用程序,下面是服务器.cpp文件. int main(){ int serverFd,clientFd,serverLen,clientLen;struct sockaddr_un serverAddress;/* Server address */struct sockaddr_un clientAddress; /* Client address */st
下面是我的 Linux代码.
我正在实现客户端/服务器应用程序,下面是服务器.cpp文件.

int main()
{
 int serverFd,clientFd,serverLen,clientLen;
struct sockaddr_un serverAddress;/* Server address */
struct sockaddr_un clientAddress; /* Client address */
struct sockaddr* serverSockAddrPtr; /* Ptr to server address */
struct sockaddr* clientSockAddrPtr; /* Ptr to client address */

/* Ignore death-of-child signals to prevent zombies */
signal (SIGCHLD,SIG_IGN);

serverSockAddrPtr = (struct sockaddr*) &serverAddress;
serverLen = sizeof (serverAddress);

clientSockAddrPtr = (struct sockaddr*) &clientAddress;
clientLen = sizeof (clientAddress);

/* Create a socket,bidirectional,default protocol */
serverFd = socket (AF_LOCAL,SOCK_STREAM,DEFAULT_PROTOCOL);
serverAddress.sun_family = AF_LOCAL; /* Set domain type */
strcpy (serverAddress.sun_path,"css"); /* Set name */
unlink ("css"); /* Remove file if it already exists */
bind (serverFd,serverSockAddrPtr,serverLen); /* Create file */
listen (serverFd,5); /* Maximum pending connection length */   

readData();

while (1) /* Loop forever */
  {
    /* Accept a client connection */
    clientFd = accept (serverFd,clientSockAddrPtr,&clientLen);

    if (fork () == 0) /* Create child to send recipe */
      {
        printf ("");
    printf ("nRunner server program. . .nn");
    printf ("Country Directory Server Started!n");

        close (clientFd); /* Close the socket */
        exit (/* EXIT_SUCCESS */ 0); /* Terminate */
      }
    else
      close (clientFd); /* Close the client descriptor */
  }

}

当我尝试编译它时会显示一条错误消息.

server.cpp:237:67: error: invalid conversion from ‘int*’ to ‘socklen_t*’
server.cpp:237:67: error:   initializing argument 3 of ‘int accept(int,sockaddr*,socklen_t*)’

它指向这一行

clientFd = accept (serverFd,&clientLen);

我其实不知道如何解决这个问题.
在此先感谢帮助的人!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读