关于远程连接使用完后已断开连接,服务器端仍显示用户正在连接的解决方法

环境:服务器端windows xp系统,用户端windows 7/10系统;

工具:windows系统中自带的远程桌面连接服务;

现象描述:办公室有一台电脑作为我们计算软件的平台,同事们可使用Windows远程连接服务通过公司局域网连接至该服务器。但最近该机重装后出现了这样的问题,即用户远程连接服务器后断开连接,发现服务器主机中显示该用户仍在登录使用中,造成其他用户无法连接,只能手动从服务器主机登录管理员账号从而断开连接,比较麻烦。

解决方法:该问题只需注意远程连接断开时的操作,

 如上图,需要点击“开始”菜单中的“注销”按钮,点击“断开”按钮或是远程屏幕上方的“X”按钮都不能正确地断开当前用户的登录。这个方法只是博主自行摸索出来的,如有知道原理的大佬欢迎分享。

希望可以帮到遇到相同问题而困扰的朋友:)

一些相关思考

1、出现这一问题的机制原理是什么呢?

2、windows远程连接的服务器只能设置单用户远程访问主机吗?可以多用户吗?如不行,有没有办法打破这一限制?

3、这种远程连接只限在局域网进行吗,如果用VPN连接至内网能否进行远程连接?

4、在外网环境下还有哪些较为便捷的远程连接(桌面)方式?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的实现: 服务器端代码: ```python import socket # 账号信息 account_info = {'user1': 'password1', 'user2': 'password2', 'user3': 'password3'} # 禁止登录的IP地址和账号信息 banned_ips = ['192.168.1.100', '10.0.0.1'] banned_users = ['user4', 'user5'] # 创建socket对象 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定IP地址和端口号 server_socket.bind(('127.0.0.1', 8888)) # 监听客户端连接 server_socket.listen(5) # 等待客户端连接 print('Waiting for clients...') client_socket, client_addr = server_socket.accept() print(f'Client {client_addr[0]}:{client_addr[1]} connected.') # 客户端登录验证 while True: # 接收客户端输入的账号和口令 data = client_socket.recv(1024) if not data: break account = data.decode().split()[0] password = data.decode().split()[1] print(f'Login attempt: {account}:{password}') # 检查登录信息 if account in account_info and account not in banned_users and client_addr[0] not in banned_ips and account_info[account] == password: client_socket.send(b'Login successful.') print(f'Login successful: {account}') break else: client_socket.send(b'Login failed. Please check your account and password.') print(f'Login failed: {account}') # 关闭连接 client_socket.close() server_socket.close() ``` 客户端代码: ```python import socket # 输入账号和口令 account = input('Account: ') password = input('Password: ') # 创建socket对象 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务器 client_socket.connect(('127.0.0.1', 8888)) # 发送登录信息 client_socket.send(f'{account} {password}'.encode()) # 接收服务器返回的登录结果 result = client_socket.recv(1024) # 显示登录结果 print(result.decode()) # 关闭连接 client_socket.close() ``` 需要注意的是,上述代码中的账号信息和禁止登录信息都是硬编码在代码中的,实际应用中应该将它们存储在数据库或配置文件中,并在运行时动态加载。此外,上述代码中的登录验证方式也比较简单,实际应用中应该采用更加安全的方式,比如加密传输口令、使用单独的认证服务等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值