《Java就业培训教程》 作者:张孝祥 书中源码
《Java就业培训教程》P374源码
发送程序:UdpSend.java
import java.net.*;
public class UdpSend
{
 public static void main(String [] args) throws Exception
 {
  DatagramSocket ds=new DatagramSocket();
  String str="hello world";
  DatagramPacket dp=new DatagramPacket(str.getBytes(),str.length(),
InetAddress.getByName("192.168.0.213"),3000);
  ds.send(dp);
  ds.close();
 }
}

接收程序:UdpRecv.java
import java.net.*;
public class UdpRecv
{
 public static void main(String [] args) throws Exception
 {
  DatagramSocket ds=new DatagramSocket(3000);
  byte [] buf=new byte[1024];
  DatagramPacket dp=new DatagramPacket(buf,1024);
  ds.receive(dp);
  String strRecv=new String(dp.getData(),0,dp.getLength()) +
  " from " + dp.getAddress().getHostAddress()+":"+dp.getPort();
  System.out.println(strRecv);
  ds.close();
 }
}
《Java就业培训教程》P378源码
import java.awt.*;
import java.awt.event.*;
import java.net.*;
public class Chat
{
 Frame f=new Frame("我的聊天室");
 TextField tfIP=new TextField(15);
 List lst=new List(6);
 DatagramSocket ds;
/*由于DatagramSocket的构造函数声明可能抛出异常,我们的程序需要用try…catch语句
进行异常捕获处理,所以不能直接在这里调用DatagramSocket的构造函数对ds进行初始化,
我们需要将ds的初始化放在Chat类的构造函数中去完成。*/
 public Chat()
 {
         try
         {
             ds=new DatagramSocket(3000);
         }catch(Exception ex){ex.printStackTrace();}
 }
 public static void main(String [] args)
 {
  Chat chat=new Chat();
  chat.init();
 }
 public void init()
 {
  f.setSize(300,300);
  f.add(lst);

Panel p=new Panel();
  p.setLayout(new BorderLayout());
  p.add("West",tfIP);
  TextField tfData=new TextField(20);
  p.add("East",tfData);
  f.add("South",p);
  f.setVisible(true);
  f.setResizable(false);//限制用户改变窗口的大小
  
  //增加关闭窗口的事件处理代码
  f.addWindowListener(new WindowAdapter()
{
 public void windowClosing(WindowEvent e)
 {
  ds.close();//程序退出时,关闭Socket,释放相关资源
  f.setVisible(false);
  f.dispose();
  System.exit(0);
 }
}); 
  //增加在消息文本框中按下回车键的事件处理代码
  tfData.addActionListener(new ActionListener()
{
       public void actionPerformed(ActionEvent e)
       {
  //取出文本框中的消息字符串,并将其转换成字节数组
    byte[] buf;
    buf = e.getActionCommand().getBytes();
 try
 {
  DatagramPacket dp= new DatagramPacket(buf,buf.length,
  InetAddress.getByName(tfIP.getText()),3000);
  ds.send(dp);
}catch(Exception ex){ex.printStackTrace();}
/*上面的Exception的引用变量名不能为e,而是改写成了ex,因为e已经在
actionPerformed方法中作为形式参数变量名被定义过了。*/
              ((TextField)e.getSource()).setText("");
       } 
});
 }
}
《Java就业培训教程》P380源码
import java.awt.*;
import java.awt.event.*;
import java.net.*;
public class Chat
{
 Frame f=new Frame("我的聊天室");
 TextField tfIP=new TextField(15);
 List lst=new List(6);
 DatagramSocket ds;。
 public Chat()
 {
         try
         {
             ds=new DatagramSocket(3000);
         }catch(Exception ex){ex.printStackTrace();}
   new Thread(new Runnable()
{
public void run()
    {
     byte buf[]=new byte[1024]; 
        DatagramPacket dp= new DatagramPacket(buf,1024);
        while(true)
        {
           try
           {
             ds.receive(dp);
                lst.add(new String(buf,0,dp.getLength())+
":from"+dp.getAddress().getHostAddress(),0);
           }catch(Exception e){e.printStackTrace();}                
         }
 }
}).start();
 }
 ……
}
《Java就业培训教程》P385源码
import java.net.*;
import java.io.*;
public class TcpServer
{
 public static void main(String [] args)
 {
  try
  {
  ServerSocket ss=new ServerSocket(8001);
  Socket s=ss.accept();
  InputStream ips=s.getInputStream();
  OutputStream ops=s.getOutputStream();
  ops.write("welcome to www.it315.org!".getBytes());
  byte [] buf = new byte[1024];
  int len = ips.read(buf);
  System.out.println(new String(buf,0,len));
  ips.close();
  ops.close();
  s.close();
  ss.close();
  }catch(Exception e){e.printStackTrace();}
 }
}
《Java就业培训教程》P388源码
import java.net.*;
import java.io.*;
class Servicer implements Runnable
{
 Socket s;
 public Servicer(Socket s)
 {
  this.s = s;
 }
 public void run()
 {
 try
 {
 InputStream ips=s.getInputStream();
 OutputStream ops=s.getOutputStream();
 
 BufferedReader br = new BufferedReader(new InputStreamReader(ips));
 DataOutputStream dos = new DataOutputStream(ops);
 while(true)
 {
  String strWord = br.readLine();
  //System.out.println(strWord +":" + strWord.length());
  if(strWord. equalsIgnoreCase("quit"))
   break;
  String strEcho = (new StringBuffer(strWord).reverse()).toString();
  //dos.writeBytes(strWord +"---->"+ strEcho +"/r/n");
  dos.writeBytes(strWord + "---->"+ strEcho +
 System.getProperty("line.separator"));   }
 br.close();
 //关闭包装类,会自动关闭包装类中所包装的底层类。所以不用调用ips.close()
 dos.close();
 s.close();
 }catch(Exception e){e.printStackTrace();}
 }
}
class TcpServer
{
 public static void main(String [] args)
 {
  try
  {
   ServerSocket ss=new ServerSocket(8001);
   while(true)
   {
    Socket s=ss.accept();
    new Thread(new Servicer(s)).start();
   }
   //ss.close();
  }catch(Exception e){e.printStackTrace();}
 }
}
《Java就业培训教程》P391源码
import java.net.*;
import java.io.*;
public class TcpClient
{
 public static void main(String [] args)
 {
 try
 {
  //Socket s=new Socket(InetAddress.getByName("192.168.0.213"),8001);
  if(args.length < 2)
  {
   System.out.println("Usage:java TcpClient ServerIP ServerPort");
   return;
  }
  Socket s=new Socket(
  InetAddress.getByName(args[0]),Integer.parseInt(args[1]));
  InputStream ips=s.getInputStream();
  OutputStream ops=s.getOutputStream();
  
  BufferedReader brKey =
  new BufferedReader(new InputStreamReader(System.in));
  DataOutputStream dos = new DataOutputStream(ops);
  BufferedReader brNet = new BufferedReader(new InputStreamReader(ips));

while(true)
  {
   String strWord = brKey.readLine();
   dos.writeBytes(strWord + System.getProperty("line.separator"));
   if(strWord.equalsIgnoreCase("quit"))
    break;
   else
    System.out.println(brNet.readLine());
  }
  dos.close();
  brNet.close();
  brKey.close();
  s.close();
 }catch(Exception e){e.printStackTrace();}
 }
}

《Java就业培训教程》_张孝祥_书内源码_11相关推荐

  1. 《张孝祥JAVA就业培训教程》书摘

    1.java虚拟机及java的跨平台原理: 图P2        java兼顾解释件与编译性语言的特点,java源文件转换成.class字节码文件的过程是编译型的,.class在操作系统上运行的过程则 ...

  2. java就业培训教程 第一章读书笔记

    1.1  JVM和java的跨平台 java的跨平台:  java源程序经过编译->java字节码文件->由JVM执行 其实对于java的跨平台的这个特性,刚开始不是很能理解,直到有一次, ...

  3. 基于JAVA教育培训机构信息管理系统计算机毕业设计源码+系统+lw文档+部署

    基于JAVA教育培训机构信息管理系统计算机毕业设计源码+系统+lw文档+部署 基于JAVA教育培训机构信息管理系统计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  4. java就业班学什么呀_传智播客JAVA就业班学习心得

    传智播客JAVA就业班学习心得 4月26日CVS---4月27日UML 连续两天状态很是不好,上课总是不能够集中精神.不知为什么听这两天课的时候精神很涣散,也不知道自己在想什么,一整天的课,似听非听的 ...

  5. java基础案例教程第二章_第2章Java编程基础_补充案例教程.doc

    第2章Java编程基础_补充案例教程 博学谷--让IT教学更简单,让IT学习更有效博学谷--让IT教学更简单,让IT学习更有效 PAGE \* MERGEFORMAT34PAGE \* MERGEFO ...

  6. Java开发入门与实战!张孝祥java就业培训

    正文 我的第一份工作是在一家外企,当时抱着"逃离"上海的想法去了二线城市的分公司,但是管理文化氛围跟总部几乎都是一样的,这份工作经历对我后面的工作不论是做事风格.习惯上还是思考问题 ...

  7. java就业班怎么改简历_手把手教你如何修改简历

    许多同学在写保研简历的时候,都是把之前实习的简历COPY过来,或者把申请奖学金的简历COPY过来,然后打包直接和其他材料一起寄给目标院校.但是,保研简历是面试老师了解你的第一手资料,是决定你能被录取与 ...

  8. java项目开发教程课后答案_《JavaWeb程序开发入门》课后题

    第一章 1.请编写一个格式良好的XML文档,要求包含足球队一支,队名为Madrid,球员5人:Ronaldo.Casillas.Ramos.Modric.Benzema:篮球队一支,队名为Lakers ...

  9. 本人编写的《新编J2ME就业培训教程》一书正式出版!

    内容简介 本书系统地介绍了J2ME技术的各个方面,包括开发环境的安装.J2ME的相关技术以及开发工具的使用等.和一般的技术书籍不同,本书在介绍各个J2ME技术时,从实际应用的角度出发,详细介绍这些技术 ...

  10. java就业培训 | 面试官如何判断应聘者能力的,这一篇就够了

    程序员是一个要有过硬技术的职位,不同的公司对程序员的要求是不一样的,在面试过程中,面试官通过一些问题的设计与技术交流,基本可以判定应聘者是在java培训机构出来的还是科班出身的小白,那面试官一般在哪些 ...

最新文章

  1. composer爆错:zlib_decode():data error
  2. SVN为什么比git更好
  3. html大学生活主题班会,“大学生活”主题班会记录范文
  4. oracle 12 ORA-01262,oracle物理dg安装:方法二
  5. java二重循环计数_java的二重循环代码样例
  6. datagridview 纵向 横向 合并单元格_每日一Excel技巧(熟能生巧):带公式的单元格,快速批量复制、填充...
  7. 第一次立会(2019.3.24)
  8. java(14) - HashMap类
  9. 安装Centos7时提示 /dev/root does not exits
  10. python运行报错,系统找不到指定的文件
  11. html泰勒展开,常见的泰勒公式展开式大全
  12. 海信在CES宣布推出75英寸到100英寸的全系全色激光电视产品
  13. 深入浅出keepalived+nginx实现网关主备高可用
  14. 文件管理nas php,家用nas安装配置可道云进行文件管理
  15. python中的eval函数
  16. springboot+APP基于Android的洗衣店预约系统毕业设计源码260839
  17. 我要学编程,看什么书好?--^_^,这里推荐一些个人觉得很不错的书
  18. 解决Visual Studio2019登录微软账户登录不上的问题
  19. 苹果CEO库克: 请无所畏惧,做最不愿接受现状的人丨2018年毕业典礼演讲
  20. android 查看系统数据库

热门文章

  1. OpenSSL密码库算法笔记——第1章 大整数的基本运算
  2. SAP GUI 750 下载链接
  3. 微信小程序远程git代码管理
  4. MIDI入门: 用简谱轻松自定义midi音乐 [圣诞贺卡+铃儿响叮当]
  5. java jre下载安装教程_java JRE下载、安装以及环境变量教程
  6. 大一c语言编程上机题库,C语言上机题库Word版
  7. Winform 表格布局
  8. 大学计算机一级准考证打印,河海大学计算机等级考试准考证打印入口
  9. 基础篇:数据库 SQL 入门教程
  10. txt转excel 处理数据