热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

江湖救急!应用socket引起所有的network应用程序出错,如MSN,outlook...

公司有个系统,比较古老,web端使用的是applet,applet作为socketclient端。另一台服务器运行socketserver.当多次执行某一个特定事务时(通过Applet,该事务会触
公司有个系统,比较古老,web端使用的是applet,applet作为socket client端。另一台服务器运行socket server.当多次执行某一个特定事务时(通过Applet,该事务会触发发送message到server),会引起browser,outlook, msn等任何有关网络连接的应用软件都挂掉。重新打开也不行,必须注销或重启机器。
1,不是每台机器都会产生这样的问题,有些客户机运行没有任何问题。
2,这些客户机的操作系统,浏览器,jdk version应该都没有区别。
3,很多事务都通过socket传送message,只有该操作会出现此类问题。

现在根本不知道问题出在那里,说是代码问题吧,有些机器还都好用,说不是代码问题吧。确实只有该事务会引起这个问题。郁闷了好久了。。。

12 个解决方案

#1


:(
淘汰掉那个系统吧lz

#2


先前开发这套系统的没留下技术文档?查阅下先

#3


没有什么技术文档,而且系统也不能立即淘汰。有那位前辈知道会引起所有有关网络的应用系统软件全部挂掉的原因。

#4


关键是找到问题所在

这种情况有两种可能最大
1是带宽占用上来了,比如出现反复发送数据,造成带宽被占用
2是端口或者系统缓存占住了。比如socket在连接到了server后发送数据造成阻塞,但没有关闭这个socket就重新启动另外一个socket,这样一直下去,可用port全部被占用,其他的程序也玩完了。系统缓存也有可能,一个socket一般都开辟4k缓存,如果手动设置可以更大。而系统可提供给端口的缓存总数是有限的,如果socket的buffer设置太大,而socket又太多,缓存用完,其他的网络程序也会遇到问题。


你先查查看是不是这个原因。可以通过netstat来看端口有没有增加,如果不是就要找具体细节了。

#5



我在server端有打印输出,的确就是在receiveMessage时停住了。不过没有重新打开socket,也就是说,当出现这种情况时应该是只有一个socket连接(端口固定的)。
不知道这种情况下会引起缓存占用过大么?应用的是object传递

#6


up

#7


你的applet是Socket(ip,port)来建立连接的吧。
出现问题时是客户端的不能用还是server端的不能用?

#8


对,是这种连接方式,出现问题时server端照常使用(使用多线程),不过该线程一直处于等待状态。client端所有网络相关的软件都挂掉了,包括浏览器,outlook,msn...
而且我的机器测试是好用的。

#9


现在你要测试的是客户端的问题,按我说的方法,在出问题后检测netstat,看看使用的端口有哪些,看看网络流量大小,再看看内存使用的变化。

应该不需要重新启动计算机,把客户中javaw进程杀了就可以了吧

#10


First netstat:
Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    nataliec:1218          cs1epo2.sg.int.psaglobal.com:82  ESTABLISHED
  TCP    nataliec:1226          10.106.34.20:http      FIN_WAIT_1
  TCP    nataliec:1227          10.106.34.20:22501     CLOSED

#11


Second netstat (Client hang):
Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    nataliec:1189          cs1epo2.sg.int.psaglobal.com:82  TIME_WAIT
  TCP    nataliec:1195          10.106.34.20:http      TIME_WAIT
  TCP    nataliec:1200          corp4dcsg1.sg.int.psaglobal.com:microsoft-ds  TIME_WAIT
  TCP    nataliec:1202          cs1epo2.sg.int.psaglobal.com:82  TIME_WAIT
  TCP    nataliec:1207          10.106.34.20:http      TIME_WAIT
  TCP    nataliec:1210          10.106.34.20:http      TIME_WAIT
  TCP    nataliec:1213          10.106.34.20:http      TIME_WAIT
  TCP    nataliec:1216          10.106.34.20:http      ESTABLISHED
  TCP    nataliec:1217          cs1epo2.sg.int.psaglobal.com:82  FIN_WAIT_2
  TCP    nataliec:1218          cs1epo2.sg.int.psaglobal.com:82  ESTABLISHED
  TCP    nataliec:1424          xchg2vs1.sg.int.psaglobal.com:10201  ESTABLISHED
  TCP    nataliec:1453          corp4dcsg1.sg.int.psaglobal.com:1026  ESTABLISHED
  TCP    nataliec:1463          xchg1vs1.sg.int.psaglobal.com:1475  ESTABLISHED
  TCP    nataliec:4522          corp4dcsg1.sg.int.psaglobal.com:1026  ESTABLISHED
  TCP    nataliec:4526          xchg2vs1.sg.int.psaglobal.com:10201  ESTABLISHED
  TCP    nataliec:4968          corp4dcsg1.sg.int.psaglobal.com:3268  CLOSE_WAIT

#12


Before that, 还有两个正常操作的后的netstat
1.Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    nataliec:1218          cs1epo2.sg.int.psaglobal.com:82  ESTABLISHED
  TCP    nataliec:1227          10.106.34.20:22501     CLOSED
  TCP    nataliec:1230          cs1epo2.sg.int.psaglobal.com:82  SYN_SENT
2. Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    nataliec:1218          cs1epo2.sg.int.psaglobal.com:82  ESTABLISHED
  TCP    nataliec:1226          10.106.34.20:http      CLOSING
  TCP    nataliec:1227          10.106.34.20:22501     CLOSED
  TCP    nataliec:4522          corp4dcsg1.sg.int.psaglobal.com:1026  ESTABLISHED
  TCP    nataliec:4526          xchg2vs1.sg.int.psaglobal.com:10201  ESTABLISHED

推荐阅读
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • 如何在窗口右下角添加调整大小的手柄
    本文探讨了如何在传统MFC/Win32 API编程中实现类似C# WinForms中的SizeGrip功能,即在窗口的右下角显示一个用于调整窗口大小的手柄。我们将介绍具体的实现方法和相关API。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
author-avatar
kanliyan_857
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有