国开电大Java语言程序设计形考任务4课程实验4参考答案
本文将为大家提供国开电大Java语言程序设计形考任务4课程实验4参考答案,帮助大家更好地完成实验任务。
实验目的:
1. 掌握Java多线程编程的基本概念和方法。
2. 学会使用Java多线程编写网络程序。
实验内容:
1. 编写一个简单的Java多线程程序,实现多线程并发执行的功能。
2. 编写一个网络程序,实现客户端与服务器之间的通信。
实验步骤:
1. 编写多线程程序。
(1)定义一个类MyThread,继承Thread类。
(2)重写run()方法,在方法中实现多线程并发执行的功能。
(3)在主函数中创建多个MyThread对象,调用start()方法启动线程。
(4)编译运行程序,观察多线程并发执行的效果。
2. 编写网络程序。
(1)定义一个类Server,实现服务器端的功能。
(2)在Server类中创建一个ServerSocket对象,监听指定端口。
(3)使用while循环不断接受客户端的连接请求,创建一个Socket对象。
(4)使用Socket对象的输入输出流与客户端进行通信。
(5)定义一个类Client,实现客户端的功能。
(6)在Client类中创建一个Socket对象,连接服务器端。
(7)使用Socket对象的输入输出流与服务器端进行通信。
(8)编译运行程序,观察客户端与服务器之间的通信效果。
参考代码:
多线程程序:
public class MyThread extends Thread {
private String name;
public MyThread(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(name + " : " + i);
}
}
public static void main(String[] args) {
MyThread mt1 = new MyThread("Thread1");
MyThread mt2 = new MyThread("Thread2");
mt1.start();
mt2.start();
}
}
网络程序:
服务器端:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
while (true) {
Socket socket = serverSocket.accept();
System.out.println("客户端已连接,IP地址为:" + socket.getInetAddress().getHostAddress());
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
byte[] bytes = new byte[1024];
int len = inputStream.read(bytes);
String message = new String(bytes, 0, len);
System.out.println("客户端发送的消息为:" + message);
outputStream.write("服务器已收到消息".getBytes());
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class Client {
public static
3亿多的题库,支持文字、图片,语音搜题,包含国家开放大学、广东开放大学、云南开放大学、北京开放大学、上海开放大学、江苏开放大学、超星、青书、奥鹏等等多个平台题库,考试作业必备神器。

微信扫码添加好友
如二维码无法识别,可拨打 13662661040 咨询。