没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
13页
本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java输入输出流;进阶篇有反射、泛型、注解、网络编程、多线程、序列化、数据库、Servlet、JSP、XML解析、单例模式与枚举。本专栏主要为Java入门者提供实验参考。
资源推荐
资源详情
资源评论
实 验 报 告
姓 名 学 号 专业班级
课程名称 Java 高级程序设计实验 实验日期
成 绩 指导教师 批改日期
实 验 名 称 实验 6 多线程
1、把课本《Java高级程序设计》第5章的习题3的一对多的聊天程序改写成多线程的实现方式,
即服务器端为每个客户端建立一个单独的线程为其服务。
源代码:
客户端代码:
package unit_5;
import java.io.BueredReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.*;
public class client_more {
public static void main(String[] args) throws Exception{
Socket socket = new Socket("127.0.0.1",9999);
InputStreamReader reader = new
InputStreamReader(socket.getInputStream());
BueredReader buer_reader = new BueredReader(reader);
Scanner input= new Scanner(System.in);
PrintWriter writer = new PrintWriter(socket.getOutputStream());
boolean f=true;//循环判断
String name=null;//发送方姓名
String toName=null;//接收方姓名
int temp=0;//用于定位是否是已经在聊天了
int i=0;
int logout=0; //判断是否退出
while(f){
String str=null;
if(i==3){
}else{
System.out.print("请选择:1.注册 2.登陆 3.发消息 4.退出:");
i=input.nextInt();
}
if(i==1){//注册
System.out.print("我说:");
String str1=input.next();
str="<register name=”"+str1+"”/>";
writer.println(str);
writer.@ush();
String echo= buer_reader.readLine();
System.out.println("服务器响应:"+echo);
}else if(i==2){//登录
System.out.print("我说:");
String str1=input.next();
name=str1;
str="<login name=”"+str1+"”/> ";
writer.println(str);
writer.@ush();
String echo= buer_reader.readLine();
System.out.println("服务器响应:"+echo);
}else if(i==3){//聊天中...
String message=null;
if(temp==0){
System.out.print("接受方姓名:");
toName=input.next();
System.out.print("我说("+name+"):");
message=input.next();
temp=1;
}else{
System.out.print("我说("+name+"):");
message=input.next();
}
if(message.equals("logout")){//如果输入logou就代表退出聊天服务器
logout=1;
}else{
str="<message from=”"+name+"”"+" to=”"+toName+"”"+"
message=”"+message+"”>";
writer.println(str);
writer.@ush();
String echo= buer_reader.readLine();//读到消息
System.out.println(toName+":"+echo);//读到消息
}
}
if(i==4||logout==1){//退出
str="<logout name=”"+name+"”/";//退出
writer.println(str);
writer.@ush();
String response = buer_reader.readLine();
System.out.println("服务器响应:"+ response);
f=false;
}
}
//关闭该关闭的
writer.close();
buer_reader.close();
socket.close();
}
}
服务器端的代码:
package unit_5;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
public class Server_more {
public static HashMap<String, PrintWriter> users= new
HashMap<String,PrintWriter>();
public static void main(String[] args) throws Exception{//一对多的聊天
ServerSocket server = new ServerSocket(9999);
while(true){
System.out.println("正在等待。。。\n");
Socket socket = server.accept();
SocketHandler handler = new SocketHandler(socket);
Thread thread = new Thread(handler);
thread.start();
}
}
}
线程执行代码:
package unit_5;
import java.io.IOException;
import java.net.ServerSocket;
剩余12页未读,继续阅读
淡写╮青春
- 粉丝: 984
- 资源: 31
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页