SylixOS 中应用程序的 socket address 被占用问题
问: SylixOS 中应用程序的 socket address 被占用问题,如何处理?

- [root@sylixos:/apps/test_tool]# ./test_tool &
- [root@sylixos:/apps/test_tool]# test tool init failed
- can not bind socket Address already in use.

在应用程序中,如果存在服务器 socket监听时,重启应用程序,常会出现上述 socket 地址被占用的情况,可以通过设置 socket 的SO_REUSEADDR 选项来重用,即在程序中增加如下代码,即可解决。

setsockopt(iSock, SOL_SOCKET, SO_REUSEADDR, (const void *)&iOne, sizeof(iOne));

更多扩展知识见:
Related Articles
SylixOS 的 socket 属性设置
SylixOS 主要支持以下socket属性 协议族 Level(级别) optname(选项名) Get Set 说明 标志 数据类型 AF_PACKET SOL_PACKET PACKET_ADD_MEMBERSHIP * 加入多播组 PACKET_DROP_MEMBERSHIP * 离开多播组 PACKET_RECV_OUTPUT * 接收链路层数据包 PACKET_RX_RING * PACKET_VERSION * ...
Qt运行报错:could not bind to file /tmp/qtembedded-0/QtEmbedded-0
Q:Qt 运行报错 :could not bind to file /tmp/qtembedded-0/QtEmbedded-0 该如何解决? 进程正在运行... QWSServerSocket::init: Address already in use OWSServerSocket::could not bind to file /tmp/qtembedded-0/QtEmbedded-0 QWSServerPrivate::initserver: server socket not ...
(Qt)多进程报错:could not bind to file /tmp/qtembedded-0/QtEmbedded-0
Q:同时运行多个界面(Qt)进程报错:could not bind to file /tmp/qtembedded-0/QtEmbedded-0 第一个进程是可以运行的,继续运行第二个进程的时候报错,操作示例如下: [root@sylixos:/apps/test]# ./app1 -qws & [root@sylixos:/apps/tset]# ./app2 -qws QWSServerSocket::init: Address already in use ...
SylixOS 功能介绍及版本差异
SylixOS功能介绍及版本差异 SylixOS 标准版 SylixOS 标准版是 SylixOS 的基础版本,具备如下功能: 兼容 IEEE 1003(ISO/IEC 9945)操作系统接口规范; 兼容 POSIX 1003.1b(ISO/IEC 9945-1)实时编程标准; 支持国军标 GJB7714-2012 操作系统接口规范; 优秀的实时性能(任务调度与切换算法时间复杂度为 O(1)); 支持无限多任务; 抢占式调度支持 256 个优先级; 支持虚拟进程; ...
TCP/UDP 通信中 server 端异常关闭后无法再次连接
Q:在 TCP/UDP 通信中,服务器和客户端正常通信时若手动异常关闭 server 端进程,再次运行开启 server 端程序会在 bind 函数位置报错,造成无法连接? 尝试在 bind 函数前添加 setsockopt 函数增加复用功能,重用本地地址,代码如下 iRet = setsockopt(sockFd, SOL_SOCKET, SO_REUSEADDR, &iRet, sizeof(int)); if(iRet < 0){ ...