「疯狂java讲义代码」疯狂java讲义在线阅读
本篇文章给大家谈谈疯狂java讲义代码,以及疯狂java讲义在线阅读对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java.awt.Dimension 具体是怎么实现的?
- 2、疯狂Java讲义的源码如何导入eclipse运行?
- 3、疯狂Java讲义:使用ServletSocket创建TCP服务器端
- 4、疯狂Java讲义:使用DatagramSocket发送、接收数据[2]
- 5、怎么把疯狂java讲义光盘里面的内容导入到eclipse
java.awt.Dimension 具体是怎么实现的?
Dimension类其实就是封装了了两个数据:width和height。
如果打开Dimension类的源代码,可以看到如下构造器:
public Dimension(int width, int height) {
this.width = width;
this.height = height;
}
通过该构造器可以看到Dimension就是封装了width和height两个数据。
因此当你调用frame.setPreferredSize(new Dimension(300, 200));时,实际上就相当于为给frame设置了推荐的宽(width)和高(height),该窗口就会根据它所包含的组件大小来计算该窗口所需要的宽和高。可以去看看”疯狂Java讲义“的11章,这里讲得很透彻
疯狂Java讲义的源码如何导入eclipse运行?
Java项目的源代码通过一下四部完成导入到eclipse
1、单击eclipse的file菜单 ,选择 import project from file system
2、在弹出的窗口单击 diretory 按钮 选择 Java源代码文件系统所在的目录
3、单击“选择文件夹 ”完成将java源代码导入到eclispe系统
你明白了吗?
疯狂Java讲义:使用ServletSocket创建TCP服务器端
使用ServletSocket创建TCP服务器端
从图 中看上去TCP通信的两个通信实体之间并没有服务器端 客户端之分 但那是两个通信实体已经建立虚拟链路之后的示意图 在两个通信实体没有建立虚拟链路之前 必须有一个通信实体先做出 主动姿态 主动接收来自其他通信实体的连接请求
Java中能接受其他通信实体连接请求的类是ServerSocket ServerSocket对象用于监听来自客户端的Socket连接 如果没有连接 它将一直处于等待状态 ServerSocket包含一个监听来自客户端连接请求的方法
Socket accept() 如果接收到一个客户端Socket的连接请求 该方法将返回一个与客户端Socket对应的Socket(如图 所示每个TCP连接有两个Socket) 否则该方法将一直处于等待状态 线程也被阻塞
为了创建ServerSocket对象 ServerSocket类提供了如下几个构造器
ServerSocket(int port) 用指定的端口port来创建一个ServerSocket 该端口应该是有一个有效的端口整数值 ~
ServerSocket(int port int backlog) 增加一个用来改变连接队列长度的参数backlog
ServerSocket(int port int backlog InetAddress localAddr) 在机器存在多个 IP地址的情况下 允许通过localAddr这个参数来指定将ServerSocket绑定到指定的IP地址
当ServerSocket使用完毕 应使用ServerSocket的close()方法来关闭该ServerSocket 通常情况下 服务器不应该只接受一个客户端请求 而应该不断地接受来自客户端的所有请求 所以Java程序通常会通过循环 不断地调用ServerSocket的accept()方法 如下代码片段所示
//创建一个ServerSocket 用于监听客户端Socket的连接请求
ServerSocket ss = new ServerSocket( )
//采用循环不断接受来自客户端的请求
while (true)
{
//每当接受到客户端Socket的请求 服务器端也对应产生一个Socket
Socket s = ss accept()
//下面就可以使用Socket进行通信了
…
}
上面程序中创建ServerSocket没有指定IP地址 则该ServerSocket将会绑定到本机默认的IP地址 程序中使用 作为该ServerSocket的端口号 通常推荐使用 以上的端口 主要是为了避免与其他应用程序的通用端口冲突
返回目录 疯狂Java讲义
编辑推荐
Java程序性能优化 让你的Java程序更快 更稳定
新手学Java 编程
lishixinzhi/Article/program/Java/hx/201311/27266
疯狂Java讲义:使用DatagramSocket发送、接收数据[2]
程序客户端代码也与此类似 客户端采用循环不断地读取用户键盘输入 每当读到用户输入内容后就将该内容封装成DatagramPacket数据报 再将该数据报发送出去 接着把DatagramSocket中的数据读入接收用的DatagramPacket中(实际上是读入该DatagramPacket所封装的字节数组中) 客户端代码如下
程序清单 codes/ / /UdpClient java
public class UdpClient
{
//定义发送数据报的目的地
public static final int DEST_PORT = ;
public static final String DEST_IP = ;
//定义每个数据报的最大大小为 K
private static final int DATA_LEN = ;
//定义该客户端使用的DatagramSocket
private DatagramSocket socket = null;
//定义接收网络数据的字节数组
byte[] inBuff = new byte[DATA_LEN];
//以指定字节数组创建准备接受数据的DatagramPacket对象
private DatagramPacket inPacket =
new DatagramPacket(inBuff inBuff length)
//定义一个用于发送的DatagramPacket对象
private DatagramPacket outPacket = null;
public void init()throws IOException
{
try
{
//创建一个客户端DatagramSocket 使用随机端口
socket = new DatagramSocket()
//初始化发送用的DatagramSocket 它包含一个长度为 的字节数组
outPacket = new DatagramPacket(new byte[ ]
InetAddress getByName(DEST_IP) DEST_PORT)
//创建键盘输入流
Scanner scan = new Scanner(System in)
//不断读取键盘输入
while(scan hasNextLine())
{
//将键盘输入的一行字符串转换字节数组
byte[] buff = scan nextLine() getBytes()
//设置发送用的DatagramPacket里的字节数据
outPacket setData(buff)
//发送数据报
socket send(outPacket)
//读取Socket中的数据 读到的数据放在inPacket所封装的字节数组里
socket receive(inPacket)
System out println(new String(inBuff
inPacket getLength()))
}
}
//使用finally块保证关闭资源
finally
{
if (socket != null)
{
socket close()
}
}
}
public static void main(String[] args)
throws IOException
{
new UdpClient() init()
}
}
上面程序的粗体字代码同样也是通过DatagramSocket发送 接收DatagramPacket的关键代码 这些代码与服务器的代码基本相似 而客户端与服务器端的唯一区别在于 服务器所在IP地址 端口是固定的 所以客户端可以直接将该数据报发送给服务器 而服务器则需要根据接收到的数据报来决定将 反馈 数据报的目的地
读者可能会发现 使用DatagramSocket进行网络通信时 服务器端无须 也无法保存每个客户端的状态 客户端把数据报发送到服务器后 完全有可能立即退出 但不管客户端是否退出 服务器无法知道客户端的状态
当使用UDP协议时 如果想让一个客户端发送的聊天信息可被转发到其他所有客户端则比较困难 可以考虑在服务器使用Set来保存所有客户端信息 每当接收到一个客户端的数据报之后 程序检查该数据报的源SocketAddress是否在Set集合中 如果不在就将该SocketAddress添加到该Set集合中 但这样一来又涉及一个问题 可能有些客户端发送一个数据报之后永久性地退出了程序 但服务器端还将该客户端的SocketAddress保存在Set集合中……总之 这种方式需要处理的问题比较多 编程比较烦琐 幸好Java为UDP协议提供了MulticastSocket类 通过该类可以轻松实现多点广播
返回目录 疯狂Java讲义
编辑推荐
Java程序性能优化 让你的Java程序更快 更稳定
新手学Java 编程
Java程序设计培训视频教程
lishixinzhi/Article/program/Java/hx/201311/27260
怎么把疯狂java讲义光盘里面的内容导入到eclipse
将JAVA文件夹导入到Eclipse中方法: 方法一:直接将java文件夹复制,然后粘贴到项目下; 方法二: 1.打开eclipse,点击项目的空白处,选择import; 2.选择Existing Project into Workspace,点击next,找到下载的java代码,导入到eclipse中。
疯狂java讲义代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于疯狂java讲义在线阅读、疯狂java讲义代码的信息别忘了在本站进行查找喔。