《Java就业培训教程》_张孝祥_书内源码_11
《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相关推荐
- 《张孝祥JAVA就业培训教程》书摘
1.java虚拟机及java的跨平台原理: 图P2 java兼顾解释件与编译性语言的特点,java源文件转换成.class字节码文件的过程是编译型的,.class在操作系统上运行的过程则 ...
- java就业培训教程 第一章读书笔记
1.1 JVM和java的跨平台 java的跨平台: java源程序经过编译->java字节码文件->由JVM执行 其实对于java的跨平台的这个特性,刚开始不是很能理解,直到有一次, ...
- 基于JAVA教育培训机构信息管理系统计算机毕业设计源码+系统+lw文档+部署
基于JAVA教育培训机构信息管理系统计算机毕业设计源码+系统+lw文档+部署 基于JAVA教育培训机构信息管理系统计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...
- java就业班学什么呀_传智播客JAVA就业班学习心得
传智播客JAVA就业班学习心得 4月26日CVS---4月27日UML 连续两天状态很是不好,上课总是不能够集中精神.不知为什么听这两天课的时候精神很涣散,也不知道自己在想什么,一整天的课,似听非听的 ...
- java基础案例教程第二章_第2章Java编程基础_补充案例教程.doc
第2章Java编程基础_补充案例教程 博学谷--让IT教学更简单,让IT学习更有效博学谷--让IT教学更简单,让IT学习更有效 PAGE \* MERGEFORMAT34PAGE \* MERGEFO ...
- Java开发入门与实战!张孝祥java就业培训
正文 我的第一份工作是在一家外企,当时抱着"逃离"上海的想法去了二线城市的分公司,但是管理文化氛围跟总部几乎都是一样的,这份工作经历对我后面的工作不论是做事风格.习惯上还是思考问题 ...
- java就业班怎么改简历_手把手教你如何修改简历
许多同学在写保研简历的时候,都是把之前实习的简历COPY过来,或者把申请奖学金的简历COPY过来,然后打包直接和其他材料一起寄给目标院校.但是,保研简历是面试老师了解你的第一手资料,是决定你能被录取与 ...
- java项目开发教程课后答案_《JavaWeb程序开发入门》课后题
第一章 1.请编写一个格式良好的XML文档,要求包含足球队一支,队名为Madrid,球员5人:Ronaldo.Casillas.Ramos.Modric.Benzema:篮球队一支,队名为Lakers ...
- 本人编写的《新编J2ME就业培训教程》一书正式出版!
内容简介 本书系统地介绍了J2ME技术的各个方面,包括开发环境的安装.J2ME的相关技术以及开发工具的使用等.和一般的技术书籍不同,本书在介绍各个J2ME技术时,从实际应用的角度出发,详细介绍这些技术 ...
- java就业培训 | 面试官如何判断应聘者能力的,这一篇就够了
程序员是一个要有过硬技术的职位,不同的公司对程序员的要求是不一样的,在面试过程中,面试官通过一些问题的设计与技术交流,基本可以判定应聘者是在java培训机构出来的还是科班出身的小白,那面试官一般在哪些 ...
最新文章
- composer爆错:zlib_decode():data error
- SVN为什么比git更好
- html大学生活主题班会,“大学生活”主题班会记录范文
- oracle 12 ORA-01262,oracle物理dg安装:方法二
- java二重循环计数_java的二重循环代码样例
- datagridview 纵向 横向 合并单元格_每日一Excel技巧(熟能生巧):带公式的单元格,快速批量复制、填充...
- 第一次立会(2019.3.24)
- java(14) - HashMap类
- 安装Centos7时提示 /dev/root does not exits
- python运行报错,系统找不到指定的文件
- html泰勒展开,常见的泰勒公式展开式大全
- 海信在CES宣布推出75英寸到100英寸的全系全色激光电视产品
- 深入浅出keepalived+nginx实现网关主备高可用
- 文件管理nas php,家用nas安装配置可道云进行文件管理
- python中的eval函数
- springboot+APP基于Android的洗衣店预约系统毕业设计源码260839
- 我要学编程,看什么书好?--^_^,这里推荐一些个人觉得很不错的书
- 解决Visual Studio2019登录微软账户登录不上的问题
- 苹果CEO库克: 请无所畏惧,做最不愿接受现状的人丨2018年毕业典礼演讲
- android 查看系统数据库