开发者社区> 问答> 正文

telnet 服务端发送什么样的socket数据包让客户端断开连接?

如果只是close(connext_socket)客户端telnet程序并不会退出。

有的telnet服务端在登录的过程中,密码输错了会自动退出telnet显示

Connection closed by foreign host.

我稍微看了一下telnet协议,好像是返回已字节IAC(0xFF)开始的数据包

char over[10] = "";
sprintf(over, "%c%c", 255,244);// IP 244 终止进程
send(connect_d, over, strlen(over), 0);
close(connect_d);
然而客户端并没有退出。

展开
收起
a123456678 2016-06-08 19:23:17 2350 0
1 条回答
写回答
取消 提交回答
  • 和 telnet 没什么关系。

    调用 shutdown() 关闭socket连接即可。

    之所以客户端不断开连接,使用我写的是多进程的TCP服务,子进程和父进程其实是共享某些资源的,在子进程中用close关闭socket只是将socket的引用计数减一,而不会真正的去关闭。要想关闭去使用shutdown().

    2019-07-17 19:32:35
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
探索连接的最后十秒”落时”的网关 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载