通过4天时间在蓝杰的学习,我实现了通信项目一对一聊天与多人聊天的基本功能。
将我的学习过程按照时间来分,共可分为4部分:
一、14.07.12 完成创建服务器,并发送一条消息
遇到问题:
Eclipse-console:
java.net.BindException: Address already in use: JVM_Bind
原因:端口已经被使用了。port端口号 0-65535 ,注意1~1024端口是知名端口,不要轻易使用,比如80端口是用于打开网页。连续编译两次也会报出相同的异常,把关闭客户端与关闭服务器的概念弄混了,在程序中没有关闭服务器,只关闭了客户端。关闭客户端使用的是“Socket.close();”,关闭服务器使用的是“System.exit();”。这里要感谢我在蓝杰的同学潘立泽,是他帮我解决的问题。
解决办法:可以使用CMD命令netstat -an 方法查看端口是否被使用
二、14.07.13 实现了单个客户与服务器之间交流
三、14.07.14 实现了多个客户与服务器之间的交流,通过线程
四、14.07.15 实现了多人聊天室的交流功能
遇到问题:
Eclipse-console:
java.net.SocketException: Software caused connection abort: socket write error
服务器收到的是:null
CMD:
user2说的是:null
user2说的是:null
user2说的是:null
user2说的是:null
以上重复
原因:没有按照程序中规定的退出方法,直接关闭了CMD界面,导致的异常。在写程序的时候,没有想到应对该种情况,从而导致异常。
解决方法:1、规范用户退出的方法,可以增加输出语句告知用户应当如何退出;2、在程序中添加新的检测方法,若用户直接退出,则将该线程引导到规定退出的方法上来,即当服务器收到null后,将该用户直接规范退出
遇到问题:
Eclipse-console:
useri?1 用户不存在
用户不存在,关闭
java.net.SocketException: socket closed
原因:记错用户名和密码,导致无法进入。另外,通过CMD命令进入服务器后,账号密码输入错误修改后显示的账号密码不一样,删除键在CMD命令中也是一个特殊的字符,因此会在console下输出一个“?”,在修改用户名的时候不能输错,否则就需要重新输入
解决办法:暂时先好好记住用户名的账号和密码不要输错吧,我再找找资料或者找人问问
这几天的学习,我觉得写程序要有充足的时(少)间(玩)分(游)配(戏)、良好的书(注)写(释)习(输)惯(出)还有一群靠得住的队友。
首先,充足的时间。时间这种东西,稍微一不注意就浪费过去了,但是写代码就是需要时间来一点一点的堆积的东西。所谓量变引发的质变,只有足够的数量堆积,才能完成一个程序,好坏不说,最起码的基础功能总要慢慢的添加进去的。玩游戏,是必须的,但是要掌握一个度。光玩,不做事,那是傻子;光做事,不玩,那是书呆子。
之后,良好的习惯。我最高兴的就是我在写代码的习惯上还可以其中的典型就是注释和测试语句,没事就把一些变量输出一下,或者到了某一步汇报一下这一步是做什么用的。写完程序之后,测试方便很多。当然,这也是因为我的程序里总是会有一些漏洞的。
最后,靠得住的队友。一群靠得住的队友,不是他们可以帮你把代码写完(那是你自己的任务),不是他们会来教你怎么写(当然你可以主动去问啊),不是他们来催你写代码(我靠,自己安排时间了,又不是小学生)。而是,他们可以给你营造一种良好的氛围(人家都在学,你不学,那么去那里做什么啊),他们可以给你制造一定的精神压力(周围都是大神,好歹你要能够加入到他们的话题中吧),他们可以在你遇到困难的时候跟你一起解决(大家一起找问题,就显得你的智商不是那么低了,你懂的)。
分享到:
相关推荐
Java基础入门学习资料通常涵盖以下几个关键知识点: 1. **Java环境搭建**:首先,你需要安装Java Development Kit(JDK),这是编写、编译和运行Java程序所需的基础工具。在Windows、Mac或Linux系统上,都可以找到...
本文将深入探讨Java的学习入门,分享一些实用的学习经验和技巧。 首先,了解Java的基础概念是开始学习的第一步。Java是一种面向对象的编程语言,由Sun Microsystems(现为Oracle Corporation)于1995年推出。它的...
完整版java基础入门教程由浅入深讲解 Java语言编程基础 第14章 网络通信(共76页).ppt 完整版java基础入门教程由浅入深讲解 Java语言编程基础 第15章 数据库访问(共51页).ppt Java技术与应用 (共32页).ppt Java...
总之,这份"Java入门学习笔记"是一个全面的Java学习资源,覆盖了从基础知识到高级特性的广泛内容,对于想要踏入Java编程世界的新手来说,是一份不可多得的参考资料。通过阅读并实践这些笔记,初学者不仅可以掌握Java...
Java学习基础入门是每个想要踏入Java编程世界的学习者必经的阶段。这个教程涵盖了Java语言的基础概念、语法和常用API,对于初学者来说是极好的起点。以下将详细阐述Java学习的一些关键知识点。 1. **Java简介**:...
"Java基础入门"这个压缩包提供了学习Java编程的基础资源,包括经典的入门书籍源码和JDK11的中文版API文档。 首先,让我们来了解一下Java API。API(Application Programming Interface)是一系列预先定义的函数,...
3. Java 语言基础:Java 通信录小程序 涉及了 Java 语言的基础知识,包括变量声明、数据类型、运算符、控制流语句、方法定义等。这些基础知识是Java编程的基础,需要初学者牢固掌握。 4. 面向对象编程:Java 通信录...
Java的基础知识包括语法基础、面向对象编程以及高级编程接口,这些内容构成了Java开发入门到精通的核心。 **Java语法基础**是学习Java的第一步,涵盖了变量、数据类型、运算符、控制流(如if语句、for循环、while...
Java基础入门教程是一份非常适合初学者的教育资源,它引导学习者逐步掌握Java编程语言的核心概念。这份教程可能包含了以下几个关键的知识点: 1. **认识Java**:这部分通常会介绍Java的历史,由Sun Microsystems...
这个"Java基础入门源代码"集合应该是为了帮助初学者理解和实践Java编程基础而设计的。让我们详细探讨一下Java语言的基础知识,以及如何通过源代码学习。 1. **基本语法**:Java的语法与C++和C#类似,它包括类、对象...
在Java编程语言中,网络通信是通过套接字(Socket)技术实现的,特别是TCP(传输控制协议)作为网络通信的基础。本项目实践了客户端与服务端之间基于TCP的交互,实现了简单的对话功能,其中服务端运行在本地主机上。...
本教程“Java学习从入门到精通”旨在为初学者和希望巩固基础的开发者提供全面的学习资源。以下是对该教程内容的详细概述: 1. **Java简介**:这部分将介绍Java的历史、特点和应用领域,帮助你理解为何Java成为全球...
对于想要学习Java的初学者而言,本学习路线旨在覆盖从基础到高级,甚至是架构师级别的知识体系。以下是对所提供的文件内容的详细知识点解析: 1. 学习方法 - Java基础:指出了学习Java的首要任务是掌握其基础语法、...
在本作业中,"java通信程序"可能包含服务器端和客户端的Java源代码,你可以通过阅读这些代码来学习如何实现上述过程。通过实际操作,不仅能加深对Socket通信的理解,还能掌握文件在网络中的传输原理。
Java零基础学习指南是一套全面且详尽的教育资源,旨在帮助初学者从零开始掌握Java编程语言。这个指南包括源代码实例和配套教程,确保学习者能够通过实践和理论相结合的方式深入理解Java的核心概念。 首先,Java是一...
"Java程序员入门.pdf"这本书很可能是针对这些主题的一个详细指南,它会涵盖Java的基础概念,逐步引导你从零开始学习Java,直至能够独立开发简单的应用程序。建议按照书中的步骤进行学习,同时结合实际练习,巩固理论...
这份“JAVA基础入门 ppt”是为初学者或非计算机专业人员设计的,旨在提供一个简洁明了的学习路径,帮助他们快速掌握Java编程的基础知识。 首先,我们需要理解Java的基本概念。Java是由Sun Microsystems(现为Oracle...
这份"Java入门学习PPT课件"提供了简单易懂的方式,帮助新手理解Java的基础概念。 1. **Java简介**:Java是由Sun Microsystems(现为Oracle公司)开发的,由James Gosling引领的团队于1995年推出。它的设计目标是...
Java入门基础的学习工具书是初学者踏入编程世界的重要指引,尤其对于Java这门广泛应用的语言而言。这本书可能包含了大量的基础知识,旨在帮助新手理解编程概念、掌握Java语法,并逐步建立起实际编程能力。 首先,...