利用Java套接字实现应用程序间的数据通信
- 格式:pdf
- 大小:1.09 MB
- 文档页数:3


使用DatagramSocket发送、接收数据(Socket之UDP套接字)用DatagramSocket发送、接收数据(1)Java使用DatagramSocket代表UDP协议的Socket,DatagramSocket本身只是码头,不维护状态,不能产生IO 流,它的唯一作用就是接收和发送数据报,Java使用DatagramPacket来代表数据报,DatagramSocket接收和发送的数据都是通过DatagramPacket对象完成的。
先看一下DatagramSocket的构造器。
DatagramSocket():创建一个DatagramSocket实例,并将该对象绑定到本机默认IP地址、本机所有可用端口中随机选择的某个端口。
DatagramSocket(int prot):创建一个DatagramSocket实例,并将该对象绑定到本机默认IP地址、指定端口。
DatagramSocket(int port, InetAddress laddr):创建一个DatagramSocket实例,并将该对象绑定到指定IP地址、指定端口。
通过上面三个构造器中的任意一个构造器即可创建一个DatagramSocket实例,通常在创建服务器时,创建指定端口的DatagramSocket实例--这样保证其他客户端可以将数据发送到该服务器。
一旦得到了DatagramSocket实例之后,就可以通过如下两个方法来接收和发送数据。
receive(DatagramPacket p):从该DatagramSocket中接收数据报。
send(DatagramPacket p):以该DatagramSocket对象向外发送数据报。
从上面两个方法可以看出,使用DatagramSocket发送数据报时,DatagramSocket并不知道将该数据报发送到哪里,而是由DatagramPacket自身决定数据报的目的地。
就像码头并不知道每个集装箱的目的地,码头只是将这些集装箱发送出去,而集装箱本身包含了该集装箱的目的地。
《Java语言程序设计(一)》复习资料Java语言是目前使用最为广泛的网络编程语言之一;具有面向对象;与平台无关性;多线程性;动态性等特点。
Java运算符按功能分6种,具体如下:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符。
结构化程序设计有顺序、分支、循环三种基本流程;java中的分支语句包括if语句、switch 语句;循环语句包括while语句、do-while语句、for语句;其他如对象、变量定义语句、赋值语句、方法调用语句等都是顺序语句。
Java中逻辑型用boolean表示;字符型用char表示;整型共有4种分别是byte(字节型)、short(短整型)、long(长整型)、int(普通整型);浮点型共两种float和double。
创建线程可以通过继承线程类Thread创建线程类;建立一个实现Runnable接口的类来运行线程。
用abstract修饰的类不能创建对象,必须产生子类,有子类创建对象;用abstract修饰的方法只允许声明,而不允许实现;如果一个类是一个abstract类的子类,它必须实现父类的abstract方法。
在类的方法的定义之前,加上修饰字public和加上修饰字private是不同的。
Public修饰的方法为公用方法,任何类的方法都可以访问他;Private修饰的方法,本类内部可以访问。
在面向对象系统中,类是对一组相同对象的描述,类概括了同类对象的共有性质:数据和方法。
对象是类的一个实例。
一个java应用程序必须且只有一个类含有main方法,这个类称为应用程序的主类,其main方法必须被说明为public static void;一个Java Applet小应用程序不再需要main方法,但必须有一个类扩展了Applet类,即它是Applet类的主类。
"编程语言的四个发展阶段(1)面向机器语言(2)面向过程语言(3)结构化程序设计阶段(4)面向对象编程。
1、简述java语言的特点Java语言是目前使用最为广泛的网络编程语言之一(1分)具有面向对象(1分)与平台无关性(1分)多线程性(1分)动态性等特点(1分)2、简述Java程序的开发过程1使用一个文字编辑器,编写源文件。
(1分)《2使用java编译器,编译源文件得到字节码文件。
(2分)3运行java程序,分两种java应用程序必须通过java解释器来解释执行,java小应用程序必须使用解释器和浏览器运行程序。
(2分)3、java源文件的命名规则是什么如果源文件中有多个类,那么只能有一个类是public类(1分)如果有一个类是public类,源文件的名字必须与这个类的名字完全相同,扩展名是java (2分)如果源文件没有public类,源文件的名字只要和某个类的名字相同,并且扩展名是java (2分)4、怎样区分应用程序和小应用程序*一个java应用程序必须且只有一个类含有main方法,这个类称为应用程序的主类,其main 方法必须被说明为public static void (1分)一个Java Applet小应用程序不再需要main方法,但必须有一个类扩展了Applet类,即它是Applet类的主类。
(分)5、Java中共有哪些基本数据类型基本类型共有8种,分四类分别是(1分)逻辑型(1分)字符型(1分)整型(1分)(浮点型(1分)6、Java中数据类型分别用什么符号来表示逻辑型用boolean 表示(1分)字符型用char表示(1分)整型共有4种分别是byte、short、long、int (2分)浮点型共两种float和double (1分)7、简答标示符的概念及定义原则(标示符是用来标识类名、变量名、方法名、类型名等有效字符序列。
(分)Java语言规定标示符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字,及java中的关键字不能用作标示符。
(分)8、简答什么是强制类型转换及转换格式当把一种数据类型变量的值赋给另一种数据类型时会用到数据转换。
java中连接服务器用法在Java中,连接服务器通常涉及到使用套接字(Socket)进行网络通信。
以下是一个简单的示例,展示了如何使用Java连接到服务器:1. 服务器端代码(在服务器上运行):```javaimport ;import ;public class Server {public static void main(String[] args) {try (ServerSocket serverSocket = new ServerSocket {("Server is listening on port 8000...");while (true) {Socket socket = ();new Thread(new ClientHandler(socket)).start();}} catch (Exception e) {}}}class ClientHandler implements Runnable {private Socket socket;public ClientHandler(Socket socket) {= socket;}Overridepublic void run() {try (BufferedReader reader = new BufferedReader(new InputStreamReader(()));PrintWriter writer = new PrintWriter((), true)) {String line;while ((line = ()) != null) {("Received from client: " + line);("Echo: " + line);} catch (Exception e) {();} finally {try {if (socket != null) {();}} catch (Exception e) {();}}}}```2. 客户端代码(在客户端机器上运行):```javaimport ;import ;import ;import ;public class Client {public static void main(String[] args) {try (Socket socket = new Socket("localhost", 8000)) { ("Connected to server!");Scanner scanner = new Scanner();BufferedReader reader = new BufferedReader(new InputStreamReader(()));while (true) {("Type a message: ");String message = ();PrintWriter writer = new PrintWriter((), true);(message);String response = ();("Server response: " + response);}} catch (UnknownHostException e) {("Could not find host: localhost");} catch (Exception e) {();} finally {Scanner scanner = null; // Close scanner if needed.}}}```这是一个简单的回声服务器和客户端的示例。