【问题标题】:How to configure the path for the UDP on the UNIX domain socket?如何在 UNIX 域套接字上配置 UDP 的路径?
【发布时间】:2011-10-18 18:58:00
【问题描述】:

我是套接字编程的新手。我正在尝试使用 DATAGRAM 建立一个 UNIX 域套接字。我在结构 sockaddr_un 中查找了有关 sun_path 配置的信息一段时间,似乎没有足够的资源来帮助我。

我创建了3个文件,unix_socket.c(提供socket连接的接口)、udp_server.c和udp_client.c,都位于“/home/Socket”目录下。 当我将 sun_path 设置为“home/Socket”时,服务器端总是会生成错误“Address already in use”。 我也尝试使用 "localSocket""echo_socket",但客户端总是生成错误“No such file or directory”。

我不知道发生了什么。有人可以帮我解决吗?真的很感激。

非常感谢

【问题讨论】:

    标签: linux-kernel udp serversocket


    【解决方案1】:

    /home/Socket 已经是一个文件夹,因此它不能被 UNIX 套接字覆盖(将其视为一种特殊文件)。尝试其他路径,例如/home/Socket/mysocket

    您还应该查看bind(2) manpage 和其中的示例。

    【讨论】:

    • 现在 bind() 可以工作了。但是,新的问题是客户端可以向服务器发送数据,服务器也可以接收,但是当服务器将数据发送回来时,错误“传输端点未连接”就出来了。你知道这可能是什么原因吗?感谢您的回复。
    猜你喜欢
    • 2018-06-21
    • 2012-12-27
    • 2011-07-25
    • 1970-01-01
    • 2021-12-04
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多