网络通信是很强大滴,网络上一切数据的传输都属于网络通信。本人现在正在学这方面的东东,写程序时出的错误也不少,综合javafound爷所讲过的,在此将几个常见的错误拿出来晒晒。
1. ip,端口错误
客户端设置的ip或端口不对
服务器端初始化时所设置的端口已被其他程序占用,或者超出了0~65535这个范围
2. 保持连接时不同的循环方式
客户端和服务器端在通信时都有一个消息接收线程在不断的循环读取流中的数据,而读数据的方法如read(),readInt(),read(byte[] b)等方法在流中无数据时会发生消息阻塞,所以如果两者的循环方式没有好好处理的话就会出现两边都是消息阻塞状态的情况,就像两个人打电话,你不说话,我也不说话,看谁耗得久......蛮恶心的
3. 协议不对口
协议啊协议,网络通信中不说是最重要的,但至少也是个元老级的牛逼角色吧
协议是通信双方之间规定的一种消息格式,没了它,那么通信就无从谈起。打个比方吧,为什么中国要在全国普及普通话乜?想象下,你和一个外地人交流(比如说福建的),用方言......嘿嘿,小样,准备悲剧吧
4. read(byte[] b) 和 readFully(byte[] b) 的区别
按我的理解,前者和后者是儿子与老子的区别,儿子照着老子办事,可是一旦网络繁忙拥堵的时候儿子就变脑残了,数据丢失或出错是经常的事,而老子就可靠些,不管怎么拥堵,它总能有条不紊的保证数据的完整性,到底是老麻雀啊
5. EOFExcepiton
EOF 即 End Of File,表示已读到文件或数据末尾,比如说客户端发来一个byte,而服务器却调用readInt(),先读完那个byte的8个位,还有24个位要读啊,但后面却没有了,怎么办乜?于是就丢给你个EOFExcepiton......
6. 断开连接时发生的正常异常
服务器和客户端不会永远连接吧,于是就会有个断开的问题。当某一方断开连接时,另一方就会报个SocketConnectException的异常,这个是正常的,不用管它
7. try catch和thows Exception的区别
此两者都是关于异常机制的处理方法,前者是在内部处理,自力更生,后者是把异常丢给调用它的方法处理,就像我一个女性朋友说的,谁看上我谁养我.............
8. 性能问题
如果在一个程序中创建了很多不必要的对象的话,这是个很不好滴现象,因为只要是对象,内存就得为他分配空间,占着茅坑不拉屎这句话大家应该都熟吧........此问题牵扯到了设计模式
9. 异常内存错误
这个问题的一个最常见的例子就是数组越界,只要是写过跟数组有关的程序的人应该都不会陌生了吧
10. Connection refused (连接拒绝)
当你碰到这个问题时,去找你的服务器吧,九成九是没开,还有零点一成是个谜......
11. Connection timed out(连接超时)
这个问题一般是网络不通所造成的,如果要确认的话就去cmd里面PING一下吧
分享到:
相关推荐
在工业自动化领域,TIA博途( Totally Integrated Automation Portal)是西门子提供的一款全面集成自动化解决方案,其中涉及到了各种通信协议,其中PROFINET是一种基于以太网的实时通讯标准,广泛应用于PLC(可编程...
《网络通信开发包详解》 在信息技术领域,网络通信是不可或缺的一部分,它是计算机间进行数据交换的基础。本文将深入探讨一款以C++编写...对于需要在网络通信领域进行开发的人员而言,这是一个值得学习和使用的工具。
网络通信是计算机科学中的一个重要领域,它涉及到两个或多个设备之间的数据交换,这些设备可以通过局域网、广域网甚至互联网进行连接。本示例旨在为初学者提供一个直观的理解和实践经验,帮助他们掌握基本的网络通信...
网络通信是计算机科学中的一个重要领域,它涉及两个或多个设备之间的数据交换。在易语言中,我们可以通过构建客户端和服务端的程序来实现这一目标。客户端通常是指用户交互的界面,而服务端则是处理客户端请求并返回...
本教程将通过Java编程语言,深入探讨如何构建一个简单的P2P网络通信系统。 首先,我们要理解P2P网络的基本原理。在P2P网络中,每个节点(即对等方或peer)都有能力直接与其他节点交换数据,而无需通过中央服务器...
通信仿真软件OPNET常见错误解析与应对策略 通信仿真软件OPNET是业界广泛使用的网络仿真工具,用于模拟和预测各种网络行为与性能。然而,在使用过程中,用户可能会遇到各种技术障碍,尤其是对于初学者而言,理解和...
标题提到的问题“解决未加载db-library网络通信层rar”是一个常见的数据库连接错误,特别是在较旧的操作系统如Windows 98和Windows 2000上。db-library是IBM的DB2数据库系统的一个组件,用于处理与数据库服务器的...
虽然VB6可能不是最新的开发工具,但它提供的网络通信功能对于初学者和有一定经验的开发者来说,仍然是一个有价值的实践平台。通过学习和实践,我们可以更好地理解网络通信协议的工作原理,提升自己的编程技能。
标题“网络通信,CS模式开发包.rar_CS_vc 远程_vs 网络通信_网络_vc_网络通信”揭示了这是一个针对CS模式网络通信的开发资源包,使用Visual Studio(VS)2003或VC7作为开发环境,并且包含了远程通信的功能。...
《网络通信协议结构图》详解 网络通信是现代信息技术的核心组成部分,它使设备之间能够进行高效的数据交换。这张“常用网络通信协议结构...不论是对初学者还是经验丰富的专业人士,这张图都是一个不可或缺的学习工具。
面向连接的网络通信是计算机网络中一种常见的通信方式,它在数据传输前先建立一个连接,然后在此连接上进行数据交换,最后断开连接。这种方式确保了数据的可靠传输,适用于需要较高服务质量(QoS)的应用,如文件...
《Visual_C++网络通信编程实用案例精选》一书专注于利用Microsoft的Visual C++工具进行网络通信程序的开发。这本书的第二版由曹衍龙和刘海英主编,提供了丰富的实例,帮助读者深入理解和实践网络编程技术。 在...
8. **错误处理与调试**:在网络通信中,错误是常见的,如连接中断、数据包丢失等。因此,良好的错误处理机制和调试工具对于问题排查至关重要。 9. **日志系统**:为了追踪程序运行状态和诊断问题,开发过程中通常会...
网络通信技术是构建现代通信网络的核心,涉及到多种技术手段,如多路复用技术、数据交换技术和差错控制技术。这些技术旨在高效、可靠地传输数据,充分利用通信资源。 多路复用技术是将多个独立的信号合并为单一复合...
网络通信开发包是一种用于构建和实现网络应用程序的重要工具,它为开发者提供了丰富的接口和功能,以便于处理网络上的数据传输、连接管理、协议解析等多种任务。在IT领域,网络通信开发包扮演着至关重要的角色,因为...
在IT领域,网络通信编程是不可或缺的一部分,尤其是在开发跨平台应用程序时。VC++,全称为Microsoft Visual C++,是一款强大的Windows平台下的C++集成开发环境,它提供了丰富的库支持,包括用于网络通信的Winsock库...
6. **故障排查**:可能包含常见网络通信问题的解决方案,如连接失败、数据传输错误等。 通过深入研究这个示例程序,用户可以学习到如何在实际工程中设置和利用西门子PLC进行工业网络通信,提升其自动化系统的集成...
其次,Android的异步网络通信是另一个重要的研究方向。由于Android应用主要运行在主线程,直接在主线程进行网络操作可能导致应用无响应,因此,如何在后台线程执行网络任务并更新UI是关键。可能的论文会详细解析...
网络通信编程是计算机科学中的一个重要领域,它涉及到如何使不同计算机之间通过网络进行数据交换。在VC++环境中,我们可以利用Windows API、MFC(Microsoft Foundation Classes)库或者更现代的C++标准库如Boost....
网络管理员在日常工作中可能会犯的六个常见错误主要涉及网络故障诊断和分析器的使用。首先,错误1是分析器的误置。放置分析器的位置至关重要,因为它直接影响到问题的定位速度。例如,如果服务器无法与局域网外的...