VNC,由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作(10055),on API connect

VNC,由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作(10055),on API connect,第1张

这个问题并不直观,并且很难检查。因为,乍一看,它很像普通的死锁,或者内存泄露。假设你已经弄好了你的服务器并且能够很好的运行。当你对服务器进行承受力测试的时候,它突然挂机了。如果你幸运,你会发现这和WSAENOBUFS出错有关。

伴随着每一次的重叠发送和接收操作,有数据的内存提交可能会被加锁。当内存被锁定时,它不能越过物理内存页。操作系统会强行为能够被锁定的内存的大小设定一个上限。当达到上限时,重叠操作将失败,并发送WSAENOBUFS错误。

假如一个服务器在在每个连接上提供了很多重叠接收,随着连接数量的增长,很快就会达到这个极限。如果服务器能够预计到要处理相当多的并发客户端的话,服务器可以在每个连接上仅仅回复一个0字节的接收。这是因为没有接收操作和内存无关,内存不需要被锁定。利用这个方法,每一个套接字的接收内存都应该被完整的保留,这是因为,一旦0字节的接收操作完成,服务器仅仅为套接字的接收内存的所以数据内存返回一个非阻塞的接收。利用WSAEWOULDBLOCK,当非阻塞接收失败时,也没有数据被阻塞。这种设计的目的是,在牺牲数据吞吐量的情况下,能够处理最大量的并发连接。当然,对于客户端如何和服务器交互,你知道的越多越好。在以前的例子中,每当0字节的接收完成,返回存储了的数据,马上执行非阻塞接收。假如服务器知道客户端突然发送数据,当0字节接收一旦完成,为防止客户端发送一定数量的数据(大于每个套接字默认的8K内存大小),它可以投递一个或多个重叠接收。

打印机显示"内存已满"时,通常是由于打印任务队列中的文件过多或文件大小过大,导致打印机内存无法容纳更多的打印任务。

要解决这个问题,你可以尝试以下方法:

1 取消或删除打印任务:在打印机的控制面板或打印队列中,查找并取消或删除已完成或不再需要的打印任务。这样可以释放打印机内存,为新的打印任务腾出空间。

2 分批打印:如果打印任务过多或文件过大,可以将它们分为多个较小的批次进行打印,以减少每次打印任务所占用的内存空间。

3 增加打印机内存:如果你经常处理大量或大型的打印任务,可以考虑增加打印机的内存容量。请参考打印机的用户手册或咨询厂家,了解如何升级打印机内存。

4 使用打印服务器或网络共享打印机:如果多台计算机共享一台打印机,可以将打印任务发送到打印服务器或网络共享打印机,以减轻各台计算机的内存压力。

5 重启打印机:有时,打印机内存的错误状态可能导致显示"内存已满",尝试重新启动打印机,可能能够解决问题。

1、进入Xmanager列表,打开shell。

2、在文件中找到新建。

3、在弹出的二级窗体中,输入服务器ip地址和名称。

4、除此之外,如果之前已经连接过服务器,会在菜单栏中找到历史远程记录。

5、如下图所示,连接上服务器后,可以进行各种操作了。

呼出任务管理器,看一下进程的内存占用情况,可以终止你怀疑的进程,如下。以后就可以在系统中找到这个进程进行卸载处理。这种办法是最安全的,即使错了重新启动电脑即可恢复。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » VNC,由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作(10055),on API connect

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情