仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 630|回复: 13
打印 上一主题 下一主题

[学习教程] 来看[JAVA100例]051、数据报通信:谈天吧

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:21:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你通过从书的数量和开发周期及运行速度来证明:net网页编程和ruby要比java简单。
//文件名:ChatClient.java
importjava.net.*;
importjava.io.*;
/**
*<p>Title:收集谈天吧</p>
*<p>Description:这是一个利用数据报通信体例的谈天程序的客户端</p>
*<p>Copyright:Copyright(c)2003</p>
*<p>Filename:ChatClient.java</p>
*@version1.0
*/
publicclassChatClient{
privateDatagramSockets;
privateInetAddresshostAddress;
privatebyte[]buf=newbyte[1000];
privateDatagramPacketdp=newDatagramPacket(buf,buf.length);
/**
*<br>办法申明:机关器,这里完成吸收用户输出和与服务器通信
*<br>输出参数:
*<br>前往范例:
*/
 publicChatClient(){
 try{
   //利用机关器,创立利用本机任何可用端口的数据包Socket
   s=newDatagramSocket();
   //猎取当地IP
   hostAddress=InetAddress.getByName("localhost");
   System.out.println("Clientstart............");
   while(true){
    StringoutMessage="";
    //读取输出
    BufferedReaderstdin =newBufferedReader(newInputStreamReader(System.in));
    try{
     outMessage=stdin.readLine();
    }catch(IOExceptionie){
     System.err.println("IOerror!");
    }
    //假如输出“bye”则暗示加入程序
    if(outMessage.equals("bye"))break;
    StringoutString="Clientsay:"+outMessage;
    byte[]buf=outString.getBytes();
    //打包数据,发送数据
    DatagramPacketout=newDatagramPacket(buf,buf.length,hostAddress,ChatServer.PORT);
    s.send(out);
    //守候服务器前往
    s.receive(dp);
    Stringrcvd="rcvdfrom"+dp.getAddress()+","+dp.getPort()+
    ":"+newString(dp.getData(),0,dp.getLength());
    System.out.println(rcvd);

   }
  }catch(UnknownHostExceptione){
   System.out.println("Can;topensocket");
   System.exit(1);
  }catch(SocketExceptione){
   System.out.println("Can;topensocket");
   e.printStackTrace();
   System.exit(1);
  }catch(IOExceptione){
   System.err.println("Communicationerror");
   e.printStackTrace();
   System.exit(1);
  }catch(Exceptione){
   System.err.println("Communicationerror");
   e.printStackTrace();
   System.exit(1);
  }
  System.out.println("ChatClientover");
}
/**
*<br>办法申明:主办法
*<br>输出参数:
*<br>前往范例:
*/
publicstaticvoidmain(String[]args){
  newChatClient();
}
}
importjava.net.*;
importjava.io.*;
importjava.util.*;
/**
*<p>Title:收集谈天吧</p>
*<p>Description:利用数据报创立的谈天服务器</p>
*<p>Copyright:Copyright(c)2003</p>
*<p>Filename:ChatServer.java</p>
*@version1.0
*/
publicclassChatServer{
staticfinalintPORT=4000;//设置服务端口
privatebyte[]buf=newbyte[1000];
privateDatagramPacketdgp=new DatagramPacket(buf,buf.length);
privateDatagramSocketsk;
/**
*<br>办法申明:服务端机关器,完成读取用户输出和通信
*<br>输出参数:
*<br>前往范例:
*/
publicChatServer(){
 try{
  //实例化数据报
  sk=newDatagramSocket(PORT);
  System.out.println("Serverstart.................");
  while(true){
   //守候吸收
   sk.receive(dgp);
   //猎取吸收信息
   Stringrcvd=newString(dgp.getData(),0,dgp.getLength())+
     ",fromaddress:"+dgp.getAddress()+
     ",port:"+dgp.getPort();
   System.out.println(rcvd);
   StringoutMessage="";
    //读取输出
    BufferedReaderstdin =newBufferedReader(newInputStreamReader(System.in));
    try{
     outMessage=stdin.readLine();
    }catch(IOExceptionie){
     System.err.println("IOerror!");
    }
   StringoutString="Serversay:"+outMessage;
   //拷贝字符到缓存
   byte[]buf=outString.getBytes();
   //打包数据,发送复书息。
   DatagramPacketout=newDatagramPacket(buf,buf.length,dgp.getAddress(),dgp.getPort());
   sk.send(out);
  }
  }catch(SocketExceptione){
   System.err.println("Can
飘灵儿 该用户已被删除
沙发
发表于 2015-1-20 21:37:31 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
莫相离 该用户已被删除
板凳
发表于 2015-1-26 10:31:06 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
兰色精灵 该用户已被删除
地板
发表于 2015-1-31 22:33:37 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
只想知道 该用户已被删除
5#
发表于 2015-2-2 21:53:46 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
不帅 该用户已被删除
6#
发表于 2015-2-3 05:52:03 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
若天明 该用户已被删除
7#
发表于 2015-2-8 10:45:04 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
蒙在股里 该用户已被删除
8#
发表于 2015-2-11 08:22:56 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
变相怪杰 该用户已被删除
9#
发表于 2015-3-2 01:37:52 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
简单生活 该用户已被删除
10#
 楼主| 发表于 2015-3-5 14:49:33 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
第二个灵魂 该用户已被删除
11#
发表于 2015-3-12 08:18:45 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
因胸联盟 该用户已被删除
12#
发表于 2015-3-13 03:08:31 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
爱飞 该用户已被删除
13#
发表于 2015-3-20 10:55:54 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
小女巫 该用户已被删除
14#
发表于 2015-4-17 07:36:22 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 12:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表