problem M

复杂度是n^2 感觉这样有点繁琐~ 和选择排序有点像。


#include <stdio.h>

int main(void)
{
    int t, array[15],  array_num, i, j, count;
     array_num = 0;
    count = 0;
    while (1)
{
        scanf("%d", &t);
        if (t == -1) break;


        if (t != 0)
{
             array[array_num++] = t;
        }
        else
{
            for (i=0; i<array_num; i++)
                for (j=0; j<array_num; j++)
                    if (i!=j && array[i]==array[j]*2)
                        count++;
            printf("%d\n", count);
            array_num = 0;
            count = 0;
        }
    }
    return 0;
}
<think>我们正在处理一个关于XVNC连接错误的问题。用户提供的错误信息是: "connecting to sesman ip 127.0.0.1 port 3350 sesman connect ok sending login info to sesman login successful for display 14 started connecting connecting to 127.0.0.1 5914 error - problem connecting" 根据错误信息,我们可以分解为以下几个步骤: 1. 连接到sesman(会话管理器)的IP 127.0.0.1端口3350,这一步成功(sesman connect ok)。 2. 发送登录信息到sesman,登录成功(login successful for display 14)。 3. 开始连接显示14(started connecting)。 4. 尝试连接到127.0.0.1的5914端口(VNC服务端口),但出现错误(error - problem connecting)。 因此,问题可能出在VNC服务器没有在127.0.0.1:5914上监听,或者防火墙阻止了连接,或者服务没有启动。 ### 解决步骤 #### 1. 检查VNC服务器是否正在运行 首先,我们需要确认VNC服务器(Xvnc)是否已经启动,并且正在监听5914端口(显示号14对应的端口,端口号=5900+显示号)。 在Linux系统上,可以使用以下命令检查端口监听情况: ```bash netstat -tuln | grep 5914 ``` 或者使用`ss`: ```bash ss -ltn | grep 5914 ``` 如果看到类似下面的输出,说明服务正在监听: ``` tcp LISTEN 0 5 127.0.0.1:5914 0.0.0.0:* ``` 如果没有输出,则说明Xvnc没有启动或者没有监听在5914端口。 #### 2. 检查VNC服务器日志 查看VNC服务器的日志,通常位于`~/.vnc/`目录下,文件名如`localhost:14.log`或类似。检查日志中是否有错误信息。 #### 3. 检查防火墙设置 如果防火墙开启,需要确保允许本地回环地址(127.0.0.1)的通信。通常本地回环是不受防火墙限制的,但为了安全,检查一下: ```bash sudo iptables -L -n -v ``` 或者如果使用firewalld: ```bash sudo firewall-cmd --list-all ``` #### 4. 手动启动VNC服务器 如果发现VNC服务器没有运行,可以尝试手动启动它。对于显示号14,通常可以这样启动: ```bash vncserver :14 ``` 或者如果使用systemd服务,可能需要: ```bash sudo systemctl start vncserver@:14.service ``` #### 5. 检查配置文件 检查VNC服务器的配置文件,位置可能因发行版和配置方式而异。常见的配置文件在`/etc/vnc.conf`或用户目录下的`~/.vnc/config`。确保配置正确,特别是监听地址和端口。 #### 6. 检查SELinux状态 如果系统启用了SELinux,它可能会阻止VNC服务器的网络连接。可以尝试临时禁用SELinux来测试: ```bash sudo setenforce 0 ``` 如果问题解决,则需要调整SELinux策略。 #### 7. 检查主机名解析 虽然这里使用的是127.0.0.1,但有时服务可能绑定到主机名,而主机名解析可能有问题。可以尝试在`/etc/hosts`文件中确保127.0.0.1对应正确的主机名。 ### 总结 根据错误信息,问题很可能出现在VNC服务器没有在5914端口上监听。按照上述步骤进行排查,应该能够解决问题。 ### 相关问题 1. 如何配置VNC服务器以监听特定端口? 2. 如何设置VNC服务器开机自启? 3. 如何配置防火墙以允许VNC连接?</think>### XVNC连接错误问题分析 根据您提供的错误信息: ``` connecting to sesman ip 127.0.0.1 port 3350 sesman connect ok sending login info to sesman login successful for display 14 started connecting connecting to 127.0.0.1 5914 error - problem connecting ``` [^1] 问题出现在最后一步:成功通过SESMAN认证后,无法连接到VNC服务器(127.0.0.1:5914)。以下是系统性的解决方案: ### 解决方案步骤 #### 1. 检查VNC服务器状态 ```bash # 检查Xvnc进程是否运行 ps aux | grep Xvnc # 检查5914端口监听状态 netstat -tuln | grep 5914 ``` 若端口未监听,说明VNC服务未启动[^1]。 #### 2. 手动启动VNC服务器 ```bash # 指定显示号14启动(端口5900+14=5914) Xvnc :14 -geometry 1920x1080 -depth 24 -localhost ``` #### 3. 检查防火墙设置 ```bash # 查看防火墙状态 sudo ufw status # 开放5914端口(若使用防火墙) sudo ufw allow 5914 ``` #### 4. 验证SESMAN配置 检查`/etc/xrdp/sesman.ini`配置: ```ini [Xvnc] param=-localhost param=-AlwaysShared param=-SecurityTypes param=None ``` #### 5. 检查日志文件 关键日志位置: ```bash /var/log/xrdp-sesman.log # SESMAN日志 ~/.vnc/*.log # VNC服务器日志 ``` #### 6. 重建VNC配置文件 ```bash rm -rf ~/.vnc/* # 删除旧配置 vncserver :14 # 重新生成配置 ``` ### 常见原因总结 | 原因 | 检查点 | 解决方案 | |------|--------|----------| | VNC未运行 | 进程/端口检查 | 手动启动Xvnc | | 端口冲突 | `netstat -tuln` | 更换显示号 | | 权限问题 | 日志中的"Permission denied" | `chmod 755 ~/.vnc` | | 配置错误 | `sesman.ini`参数 | 添加`-localhost`参数 | | 防火墙阻止 | ufw/iptables状态 | 开放5914端口 | ### 相关问题 1. 如何配置XVNC以支持多用户同时连接? 2. 如何提高XVNC的远程连接安全性? 3. 当XVNC出现画面卡顿时,如何进行性能优化? 4. 如何配置XVNC通过SSH隧道实现加密传输? 5. 在云服务器环境中部署XVNC需要注意哪些特殊配置?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值