如何解决无法绑定的问题?

如果一个SOCKET程序占用着一个端口号,而如果此时在启动另外一个进程,绑定相同的端口号就会出错,如何能够重新绑定呢?现在我的系统就出现如下的问题,系统重启时通信进程不能正常退出,再重新启动时就出现上面的问题。

int reuse=1;

setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
setsockopt(sd, SOL_SOCKET, SO_REUSEPORT, &reuse, sizeof(reuse));