发布一篇Java编程那些事儿104――收集编程手艺3
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解为了一步一步的把握收集编程,上面再研讨收集编程中的两个基础成绩,经由过程办理这两个成绩将对收集编程的熟悉深切一层。
1、怎样复用Socket毗连?
在后面的示例中,客户端中创建了一次毗连,只发送一次数据就封闭了,这就相称于拨打德律风时,德律风买通了只对话一次就封闭了,实在加倍经常使用的应当是拨通一次德律风今后屡次对话,这就是复用客户端毗连。
那末怎样完成创建一次毗连,举行屡次数据互换呢?实在很复杂,创建毗连今后,将数据互换的逻辑写到一个轮回中就能够了。如许只需轮回不停止则毗连就不会被封闭。依照这类思绪,能够改革一下下面的代码,让该程序能够在创建毗连一次今后,发送三次数据,固然这里的次数也能够是屡次,示例代码以下:
packagetcp;
importjava.io.*;
importjava.net.*;
/**
*复用毗连的Socket客户端
*功效为:发送字符串“Hello”到服务器端,并打印出服务器真个反应
*/
publicclassMulSocketClient{
publicstaticvoidmain(String[]args){
Socketsocket=null;
InputStreamis=null;
OutputStreamos=null;
//服务器端IP地点
StringserverIP="127.0.0.1";
//服务器端端标语
intport=10000;
//发送内容
Stringdata[]={"First","Second","Third"};
try{
//创建毗连
socket=newSocket(serverIP,port);
//初始化流
os=socket.getOutputStream();
is=socket.getInputStream();
byte[]b=newbyte;
for(inti=0;i<data.length;i++){
//发送数据
os.write(data.getBytes());
//吸收数据
intn=is.read(b);
//输入反应数据
System.out.println("服务器反应:"+newString(b,0,n));
}
}catch(Exceptione){
e.printStackTrace();//打印非常信息
}finally{
try{
//封闭流和毗连
is.close();
os.close();
socket.close();
}catch(Exceptione2){}
}
}
}
该示例程序和后面的代码比拟,将数据互换部分的逻辑写在一个for轮回的内容,如许就能够创建一次毗连,顺次将data数组中的数据依照按次发送给服务器端了。
假如仍是利用后面示例代码中的服务器端程序运转该程序,则该程序的了局是:
java.net.SocketException:Softwarecausedconnectionabort:recvfailed
atjava.net.SocketInputStream.socketRead0(NativeMethod)
atjava.net.SocketInputStream.read(SocketInputStream.java:129)
atjava.net.SocketInputStream.read(SocketInputStream.java:90)
attcp.MulSocketClient.main(MulSocketClient.java:30)
服务器反应:First
明显,客户端在实践运转时呈现了非常,呈现非常的缘故原由是甚么呢?假如细心浏览后面的代码,应当还记得后面示例代码中的服务器端是对话一次数据今后就封闭了毗连,假如服务器端程序封闭了,客户端持续发送数据一定会呈现非常,这就是呈现该成绩的缘故原由。
<p>
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 Java是一种计算机编程语言,拥有跨平台、面向对java 是一种使网页(Web Page)产生生动活泼画面的语言 是一种使用者不需花费很多时间学习的语言 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
页:
[1]
2