当前位置:首页 > 开发 > 编程语言 > Java > 正文

java通信入门学习

发表于: 2014-07-15   作者:只是路过   来源:转载   浏览:
摘要: 通过4天时间在蓝杰的学习,我实现了通信项目一对一聊天与多人聊天的基本功能。 将我的学习过程按照时间来分,共可分为4部分: 一、14.07.12 完成创建服务器,并发送一条消息 遇到问题: Eclipse-console: java.net.BindException: Address already in use: JVM_Bind 原因:端口已经被使用了。port端口号 0-6
通过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通信入门学习

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
最近在自己的电脑上简单实现了UDP协议和数据RSA加密。 UDP协议的全称是用户数据报协议,在网络中它
最近学习mina,需要JNIO的知识,就学习了一下,现在记录也算是笔记了。 这篇博客我主要从两个方向来
一。开发环境   用eclipse开发。步骤如下:   创建project->src下创建package->package下
跟着msdn的教程试了一下wcf,真心好用 1.先创建一个wcf服务库,是服务类库,远程的lib 2.全部按照默认
项目总结:这次项目主要是根据视频来的,结果跟到一半感觉跟不上,慢慢自己有了自己的想法,决定自
一、拦截器,拦截器栈 1、拦截器的作用 拦截器本质上和servlet的过滤器是一样的。在struts2中,拦截
最近开始通信部分的学习,也有很久没有写技术博客了,java也荒废了整整一学期了,可能本学期也会比
通信学习 学习通信,从兴趣开始,之前我也尝试过自己弄一个C++的通信,买了相关的书籍,一步一步的
先启动服务端 再启动客户端,并输入字符 Student /* TCP通讯 客户端 需求:建立一个文本转换服务器 客
先启动服务端 再启动客户端,并输入字符 Student /* TCP通讯 客户端 需求:建立一个文本转换服务器 客
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号