十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
那些是老师随堂讲的,估计只有跟堂的学生用,老师自己也许都没有~~~~~~~~~~~~`
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了汾阳免费建站欢迎大家使用!
程序清单 codes/ / /Client java
public class Client
{
public static void main(String[] args)
throws IOException
{
Socket socket = new Socket( )
//将Socket对应的输入流包装成BufferedReader
BufferedReader br = new BufferedReader(
new InputStreamReader(socket getInputStream()))
//进行普通IO操作
String line = br readLine()
System out println( 来自服务器的数据 + line)
//关闭输入流 socket
br close()
socket close()
}
}
上面程序中粗体字代码是使用ServerSocket和Socket建立网络连接的代码 斜体字代码是通过Socket获取输入流 输出流进行通信的代码 通过程序不难看出 一旦使用ServerSocket Socket建立网络连接之后 程序通过网络通信与普通IO并没有太大的区别
先运行上面程序中的Server类 将看到服务器一直处于等待状态 因为服务器使用了死循环来接受来自客户端的请求 再运行Client类 将可看到程序输出 来自服务器的数据 您好 您收到了服务器的新年祝福! 这表明客户端和服务器端通信成功
上面程序为了突出通过ServerSocket和Socket建立连接 并通过底层IO流进行通信的主题 程序没有进行异常处理 也没有使用finally块来关闭资源
实际应用中 程序可能不想让执行网络连接 读取服务器数据的进程一直阻塞 而是希望当网络连接 读取操作超过合理时间之后 系统自动认为该操作失败 这个合理时间就是超时时长 Socket对象提供了一个setSoTimeout(int timeout)来设置超时时长 如下的代码片段所示
Socket s = new Socket( )
//设置 秒之后即认为超时
s setSoTimeout( )
当我们为Socket对象指定了超时时长之后 如果在使用Socket进行读 写操作完成之前已经超出了该时间限制 那么这些方法就会抛出SocketTimeoutException异常 程序可以对该异常进行捕捉 并进行适当处理 如下代码所示
try
{
//使用Scanner来读取网络输入流中的数据
Scanner scan = new Scanner(s getInputStream())
//读取一行字符
String line = scan nextLine()
…
}
//捕捉SocketTimeoutException异常
catch(SocketTimeoutException ex)
{
//对异常进行处理
…
}
假设程序需要为Socket连接服务器时指定超时时长 即经过指定时间后 如果该Socket还未连接到远程服务器 则系统认为该Socket连接超时 但Socket的所有构造器里都没有提供指定超时时长的参数 所以程序应该先创建一个无连接的Socket 再调用Socket的connect()方法来连接远程服务器 而connect方法就可以接受一个超时时长参数 如下代码所示
//创建一个无连接的Socket
Socket s = new Socket()
//让该Socket连接到远程服务器 如果经过 秒还没有连接到 则认为连接超时
s connconnect(new InetAddress(host port) )
返回目录 疯狂Java讲义
编辑推荐
Java程序性能优化 让你的Java程序更快 更稳定
新手学Java 编程
Java程序设计培训视频教程
lishixinzhi/Article/program/Java/hx/201311/27265
你想要的是这个效果吗?
*******
******
*****
****
***
**
*
代码如下:
public class SanJiao {
public static void main(String[] args) {
for(int i=0;i7;i++){
for(int j=0;j7-i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
f.addWindowListener(参数类型错误);MyListener继承了你自己定义的WindowAdapter,但是要求的参数是WindowListener,java.awt.event.WindowAdapter才继承了WindowListener。
package learnAWT;
import java.awt.*;
//import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class WindowAdapter {
private Frame f = new Frame("test");
private TextArea ta = new TextArea(5,30);
class MyListener extends java.awt.event.WindowAdapter
{
}
public void init()
{
f.addWindowListener(new MyListener());//addWindowListener报错,
f.add(ta,BorderLayout.NORTH);
f.pack();
f.setVisible(true);
}
public static void main(String []args)
{
new WindowAdapter().init();
}
}
这样就行了。
Java项目的源代码通过一下四部完成导入到eclipse
1、单击eclipse的file菜单 ,选择 import project from file system
2、在弹出的窗口单击 diretory 按钮 选择 Java源代码文件系统所在的目录
3、单击“选择文件夹 ”完成将java源代码导入到eclispe系统
你明白了吗?
疯狂Java品牌专注高级软件编程,以“十年磨一剑”的心态打造全中国最强(不是之一)疯狂Java学习体系:包括疯狂Java体系原创图书,疯狂Java学习路线图,这些深厚的知识沉淀已被大量高校、培训机构奉为经典。
不少培训机构直接把疯狂Java学习路线图进行一下简单修改,然后就称为自己的培训路线图。疯狂Java对这种剽窃他人成果,不做任何说明、欺骗学生行为表示强烈谴责!同时也欢迎广大学习者举报这种可耻的剽窃行为,一经查实,疯狂Java将会对举报的首个人给予相应的奖励!
疯狂Java怀抱“软件强国”的理想,立志以务实的技术来改变中国的软件教育。经过八年沉淀,疯狂Java强势回归。疯狂Java创始人李刚,携疯狂Java精英讲师团队肖文吉、李韩飞、蔡世友、黄勇、陈辉等老师将带给广大学习者“非一般”的疯狂。
疯狂Java在前两年的培训过程中,凭借自身强悍的师资、一流的课程、真实的项目、超高的就业率已经让广大南方学子成功走上软件工程师职业道路。大量毕业即失业的学子已通过疯狂Java实现了就业。
疯狂Java师资阵容强大,由国内著名疯狂Java体系书籍作者李刚老师担纲首席讲师,疯狂Java精英讲师团队肖文吉、李韩飞、蔡世友、黄勇、陈辉等现场授课。还有大量具有丰富实战经验的老师同台授课,疯狂Java的教学质量只能用两个字形容:“强悍”,用三个字形容就是:“太强悍”。
李刚老师
从事10多年的Java EE应用开发,疯狂软件教育集团教学总监,疯狂Java实训营创始人,疯狂Java体系原创图书作者。曾任LITEON公司的J2EE技术主管,负责该公司的企业信息化平台的架构设计。
曾任广州电信、广东龙泉科技等公司的技术培训导师。曾兼任广东技术师范学院计算机科学系的兼职副教授。 培训的学生已在华为、立信、普信、网易、电信盈科等公司就职。
国内著名的高端IT技术作家,已出版《疯狂Java讲义》、《疯狂Android讲义》、《轻量级Java EE企业应用实战》、《疯狂Ajax讲义》、《疯狂XML讲义》、《经典Java EE企业应用实战》、《Struts 2.1权威指南》、《Ruby On Rails敏捷开发最佳实践》等著作。其中疯狂Java体系图书都是已经得到广泛的市场认同,并多次重印的畅销图书,并被多家高校选作教材,部分图书已被翻译成繁体中文版、输出到台湾地区。