【发布时间】:2014-07-10 01:14:48
【问题描述】:
我有一个使用 tcp 套接字进行通信的程序(C++ 编译)。该程序配置为两种模式。假设模式 A 和模式 B。
启动程序模式A,它会给出一些打印如下:
waiting connections on port 1234
local endpoint : 0.0.0.0:1234
//I think it is using boost for TCP socket
然后启动模式B。他们会找到彼此并完美运行。
问题是如果我启动模式 A,然后使用“ctrl c”以模式 A 终止应用程序。它将在那里打开端口。
当我启动模式B时,由于A不存在,它也会找到连接并运行错误。
我有一个 bash 来运行应用程序,我想问一下如何强制关闭该端口? (以 bash 或其他可能的方式)
谢谢
【问题讨论】:
-
如果您使用
netstat -a -n,您在所有列的输出中看到了什么?在这些情况下,该州是否偶然被列为TIME_WAIT? -
嗨@Jeff 它显示如下:tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN
-
可以修改C++代码吗?如果该程序在退出之前自行清理会更好。
-
嗨@chepner 是的,我可以修改 C++ 代码并重新编译它。我在想 C++ 应用程序不能这样做,因为 ctrl c 终止了整个程序。你有什么建议吗?
-
你试过我的答案了吗?
标签: c++ bash sockets boost tcp