telnet: Unable to connect to remote host: Connection refused

客户端使用telnet尝试连接服务端的23456端口,运行

$ telnet 192.168.136.122 23456

时出现此错误

在这里插入图片描述

首先使用netstat -nt | grep 23456检查端口23546的使用情况,没有输出。再使用netstat -napt检查所有tcp端口的使用情况
在这里插入图片描述
发现没有这个程序,更没有这个使用端口。

检查之后发现是忘了写listen语句……,加上

ret = listen(sorck, backlog);
assert(ret != -1);

之后,再次使用命令netstat -napt发现已经有了这个程序
请添加图片描述
请添加图片描述
但是端口号不是23456,且每次的端口号都不一样。虽然客户端使用telnet连接这几个端口号都可以连通,说明应该是端口号设置有问题,且不是端口号冲突,因为冲突的话assert语句就会直接报错了。

检查后发现是忘了给给address.sin_port赋值……将int port转换成网络字节序之后赋给address.sin_port

address.sin_port = htons(port)

在这里插入图片描述
在这里插入图片描述

编译运行,之后就都正常了

【注】
netstat使用示例
1)列出所有端口
netstat -anp

2)列出所有 tcp 端口
netstat -antp

3)列出所有 udp 端口
netstat -anup

4)只显示所有监听端口
netstat -lnp

5)只列出所有监听 tcp 端口
netstat -ltnp

6)只列出所有监听 udp 端口
netstat -lunp

7)只列出所有监听 UNIX 端口
netstat -lxnp

8)找出程序运行的端口
netstat -anp | grep ssh

NOTE:并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。

10)找出运行在指定端口的进程
netstat -anp | grep ‘:3306’

11)持续输出 netstat 信息(每隔一秒输出网络信息)
netstat -cnp

12)显示所有端口的统计信息
netstat -s

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值