文档详情

《JAVA程序设计》实验报告 汤勇.doc

发布:2015-12-16约字共16页下载文档
文本预览下载声明
实 验 报 告 (2014/2015学年 第 一 学期) 课程名称 JAVA程序设计 实验名称 Java网络程序设计 实验时间 2015 年 01 月 07 日 指导单位 通达学院 指导教师 许斌 学生姓名 汤勇 班级学号 学院(系) 通达学院 专 业 物联网工程 实 验 报 告 实验名称 Java网络程序设计 指导教师 许斌 实验类型 验证 实验学时 2 实验时间 2015.1.7 一、实验目的和要求 内容:利用Socket建立客户端和服务器之间的简单通信。 要求:实现客户端发送消息,服务器回应消息的通信机制。 二、实验环境(实验设备) Eclipse、JDK8.2 三、实验原理及内容 1.ChatServer.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List; /*聊天室的服务器端*/ public class ChatServer { /** 用来保存所有客户端的socket */ private ListSocket sockets = new ArrayListSocket(); public ChatServer() throws IOException{ this.init();} //启动监听public void init() throws IOException{ ServerSocket ss = new ServerSocket(8888); System.out.println(服务器已经监听在8888端口了....); //监听并接收客户端 while(true){ Socket socket = ss.accept(); sockets.add(socket); String ip = socket.getInetAddress().getHostAddress(); System.out.println(有一个客户端来了..它的IP是: + ip); //针对每个客户端都启动一个线程单独跟它通信 Thread thread = new Thread(new ServerRunner(sockets, socket)); thread.start();}} public static void main(String[] args) { try {new ChatServer();} catch (IOException e) { e.printStackTrace();}}} //服务器端跟客户端通信的线程类 //把某个客户端发过来的数据转发给所有的客户端 class ServerRunner implements Runnable { private ListSocket sockets; private Socket currentSocket; public ServerRunner(ListSocket sockets, Socket currentSocket){ this.sockets = sockets; this.currentSocket = currentSocket;} public void run() { String ip = currentSocket.getInetAddress().getHostAddress(); BufferedReader br = null; try{br = new BufferedReader( new InputStreamReader(currentSocket.getInputStream()));
显示全部
相似文档