第四次考核

码云地址:https://gitee.com/x-alchemist/java_study/tree/master/Exercise4

使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中

要求:

     1.客户端从控制台进行输入,并将客户端的输出内容和时间保存到“学号.txt”文件中

   2.服务器端读取到客户端的程序后,给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到文本文件中

     3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个“学号_ip.txt”的文件

    4..提交文件结果包括:代码,通信后生成的txt文件

 1 import java.net.*;
 2 import java.io.*;
 3 import java.util.*;
 4
 5 public class Client_Main {
 6
 7     private static String file;
 8
 9     /**
10      * @param args
11      */
12
13     @SuppressWarnings("resource")
14     public static void main(String[] args) {
15         // TODO Auto-generated method stub
16         Scanner input = new Scanner(System.in);
17         Socket mysocket = null;
18         DataInputStream in = null;
19         DataOutputStream out = null;
20
21         try {
22             mysocket = new Socket();
23             System.out.print("please input the ip of Server:");
24             String ip = input.nextLine();
25             System.out.print("please input the port of Server:");
26             int port = input.nextInt();
27             if (mysocket.isConnected()) {
28             } else {
29                 InetAddress address = InetAddress.getByName(ip);
30                 InetSocketAddress socketAddress = new InetSocketAddress(address, port);
31                 mysocket.connect(socketAddress);
32                 in = new DataInputStream(mysocket.getInputStream());
33                 out = new DataOutputStream(mysocket.getOutputStream());
34
35
36                 System.out.print(in.readUTF());
37                 System.out.print("please input your numberofyou:");
38
39                 for (int z = 0; z < 2; z++) {
40                     String s = input.nextLine();
41                     File file = new File(s + ".txt");
42                     file.createNewFile();
43                     out.writeUTF(s);
44                 }
45
46                 System.out.println("please input your question");
47
48                 for (int i = 0; i < 4; i++) {
49                     //System.out.print(in.readUTF());
50
51                     Date nowTime = new Date();
52                     //System.out.print("The answer of Servert:"+in.readUTF());
53                     String question = input.nextLine();
54                     out.writeUTF(question);
55                     System.out.println(in.readUTF());
56                     //String answer = in.readUTF();
57                     File fwrite = new File(file);
58                     Writer outfile = new FileWriter(fwrite);
59                     BufferedWriter bufferwrite = new BufferedWriter(outfile);
60                     bufferwrite.write(in.readUTF() + ":" + nowTime);
61                     bufferwrite.newLine();
62                     bufferwrite.close();
63                 }
64
65                 out.close();
66
67             }
68         } catch (Exception e) {
69             System.out.print("");
70
71         }
72
73     }
74
75 }
  1 import java.net.*;
  2 import java.io.*;
  3 import java.util.*;
  4
  5 public class Server_Main {
  6
  7     /**
  8      * @param args
  9      */
 10
 11     @SuppressWarnings("resource")
 12     public static void main(String[] args) {
 13         // TODO Auto-generated method stub
 14
 15         try {
 16             // 1.创建服务器端socket,即ServerSocket,并绑定指定的端口,并在端口进行监听
 17             ServerSocket serverSocket = new ServerSocket(8888);
 18             Socket socket = null;
 19             // 记录客户端的数量
 20             int count = 0;
 21             System.out.println("***服务器即将启动,等待客户端的连接***");
 22             // 循环监听等待客户端的连接
 23             while (true) {
 24                 // 2.通过accept()方法对客户端进行监听,等待客户端的连接
 25                 socket = serverSocket.accept();// 返回的实例用来与客户端进行通信
 26                 serverThread serverThread = new serverThread(socket);
 27                 // 启动线程
 28                 serverThread.start();
 29                 count++;
 30                 System.out.println("客户端数量: " + count);
 31                 InetAddress address = socket.getInetAddress();
 32
 33                 System.out.println("当前客户端的IP: " + address.getHostAddress());
 34                 new bianliang().ip = address.getHostAddress();
 35             }
 36
 37         } catch (IOException e) {
 38             e.printStackTrace();
 39         }
 40     }
 41
 42 }
 43
 44 class bianliang {
 45     public static String ip;
 46 }
 47
 48 class xuehao {
 49     public static String xuehao;
 50 }
 51
 52 class serverThread extends Thread {
 53     InetAddress ip = null;
 54     Socket socket;
 55     Scanner input = new Scanner(System.in);
 56     ServerSocket serverForClient = null;
 57     DataOutputStream out = null;
 58     DataInputStream in = null;
 59     private String xuehao;
 60     private String dd;
 61
 62     serverThread(Socket t) {
 63         socket = t;
 64         try {
 65             out = new DataOutputStream(socket.getOutputStream());
 66             in = new DataInputStream(socket.getInputStream());
 67         } catch (IOException e) {
 68             System.out.println("aa");
 69         }
 70
 71     }
 72
 73     public void run() {
 74         bianliang ss = new bianliang();
 75         String xuehao = null ;
 76         try {
 77             out.writeUTF("The Link is connected!!\n");
 78         } catch (IOException e) {
 79             // TODO Auto-generated catch block
 80             e.printStackTrace();
 81         }
 82
 83
 84         for (int i = 0; i <2; i++) {
 85             try {
 86                 xuehao = in.readUTF();
 87                 File aa = new File(xuehao+ "_" + ss.ip + ".txt");
 88                 aa.createNewFile();
 89             } catch (Exception e) {
 90                 System.out.print("Fail!!!");
 91             }
 92
 93         }
 94
 95         String name = xuehao+"_" + ss.ip + ".txt";
 96         for (int z = 0; z < 4; z++) {
 97             Date nowTime = new Date();
 98             try {
 99                 String question = in.readUTF();
100
101                 System.out.println("The question of Client:"+question);
102
103                 System.out.println("The answer of Server:");
104                 String qwer = input.nextLine();
105                 out.writeUTF(qwer);
106
107                 File fwrite = new File(name);
108                 try {
109                     Writer out = new FileWriter(fwrite);
110                     BufferedWriter bufferwrite = new BufferedWriter(out);
111                     bufferwrite.write(question + ":" + nowTime);
112                     String answer = input.nextLine();
113                     bufferwrite.write(answer);
114                     bufferwrite.close();
115                 } catch (Exception e) {
116                 }
117
118
119             } catch (IOException e) {
120                 // TODO Auto-generated catch block
121                 e.printStackTrace();
122             }
123         }
124     }
125 }

PS:差一点,待改进。

原文地址:https://www.cnblogs.com/x-alchemist/p/10129043.html

时间: 2024-10-12 19:47:37

第四次考核的相关文章

iOS 第四期考核题

1.对字符串“2015-09-01 08:19:10”操作,输出"08:19:10".要求使用两种截取方式. 2.数组中存取以下数据: @[@{@"name":@"陈丰",@"age":@"32"}, @{@"name":@"孙明",@"age":@"24"}, @{@"name":@"王明&quo

市委组织部项目--需求分析

接手市委组织部考核项目已经有一段时日了,在这段时间里面,小编成长了很多,经历了很多,也收获了很多,还记得刚开始老师让小编带这个项目的时候,既激动兴奋又紧张担心,激动的是还没有带过项目呢?会有怎么样的惊喜等着小编呢?紧张的是没有带过项目呢?把人家带到沟里怎么办?带着这种纠结的心情,小编也带着自己的团队,走过半个世纪,走过薄暮和黄昏,写出传世代码,年前去了几次要客户验收,客户也是满意度高高哒,还请小编的团队集体吃了一顿饭,只想说,客户的饭可不是那么好吃的,还记得前一天晚上,大家集体通宵加班,不过都是

BEC和托业的区别 公共英语等级考试

I.考试简介 考试简介 BEC剑桥商务英语证书考试 TOEIC托业考试 研发机构 剑桥大学外语考试中心ESOL,研发过雅思考试 美国教育考试服务中心ETS,研发过托福考试 进入中国 1993年进入中国 2002年进入中国 享有盛誉 外企通行证 全球最大商务和职业英语考试 •进入沪江BEC分站>>   •进入沪江托业分站>>   •进入BEC中国20周年专题>> II.考试难度 说明:从本质上来说,BEC和托业考试与四六级.专四专八和托福雅思都不具有比较性.但是为了方便大

如何让企业文化实效落地?(转)

我们依据多年的企业文化管理咨询实战经验,凭借大量的实证研究,以及总结多家企业的企业文化落地案例,研制和开发了企业文化落地的“6W”模式.即让什么 落地(what).由谁来实施落地(who).落到何处(where).通过什么渠道(which channel).用什么策略方法(which strategy).达到什么效果?(what effect).这是企业文化建设系统性的问题,也是企业文化落地最有效的模式.解决好这些问题,利用好这个模式,将大大有助于企业文化的落地生根,实现 企业的基业长青. 方法

《高级交换与路由网络》期末考试,大家评价一下我们的教学水平如何?

一.考核目的 <高级交换与路由网络>是一门实践性很强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践.本次课程考核采用项目实战的方式在实验室进行. 二.考核要求 1.要求学生熟练掌握4个工程各个任务的基本原理和操作,每人使用网络模拟器完成所有任务要求. 2.学生必须仔细研读考核任务书,按要求完成考核. 3.本次考核安排在第18周周一上午进行,时间4个小时. 4.学生在完成课程考核后,提交网络模拟器文档,由老师按照评分标准评分. 5.使用网络模拟器版本不限,推荐使用Cisco P

大三上学期十三周总结

本周学习了Socket,对线程的共享锁以及信号量进行复习,了解了加法器的二进制实现原理.算法方面,学习了递归算法及尾递归.通过学习SpringData 和SpringBoot 相关知识将面向服务架构(SOA)的单点登录系统(SSO)需要的代码实现. 对大一预科班进行第四次考核,尽可能帮助组内成员夯实Java面向对象基础. 对下周做如下学习计划: 1.对jsp进行复习,了解其内置对象. 2.了解Java消息队列. 3.深入学习Java动态代理技术及其实现原理. 4.对计算机网络.数字信号处理.数据

.java----学期末总结

JAVA---学期末总结 转眼之间,Java课程就要接近尾声了.回顾这一学期其实过的挺快的,刚刚开学的时候发现这学期的专业课相比上学期有所增多,当时暗暗的告诉自己一定要好好学习.抱着很大的热情去学习每一科,Java第一节课的时候先是学习如何配置环境,安装,编译,运行等简单的操作.之后学习了如何编写简单的输入输出程序,当时感觉还挺简单和大一学习的C语言难度差不多.再后来学习基本数据类型,运算符以及语句以及对象方法的时候,就感觉光凭课上学习的是无法完全消化的,需要我们对于各种方法以及类包括父类,子类

教育-成人高等教育-函授:函授

ylbtech-教育-成人高等教育-函授:函授 函授是成人高等教育的一种学习形式,成人高等教育另外几种学习形式是业余学习(夜大)和脱产学习(全日制).函授也是一种授课的方式.属于高等教育层次的一种学习层次,主要按各专业教学计划利用寒.暑假或国定假日派教师到各地函授站组织面授和考试. 其通过国家统一的成人高考被高校录取,发放录取通知书,属国民教育系列,国家承认学历,参加全国成人高考招生统一考试,各省.自治区统一组织录取. 1.返回顶部 1. 中文名:函授 外文名:teach on correspo

第四次过程性考核

使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中 要求: 1.客户端从控制台进行输入,并将自己的输出内容和时间保存到数据库的"client_学号"表中 2.服务器端读取到客户端的程序后,从控制台进行输入给客户端以回应,并将客户端的输入内容与服务端的输出内容.时间保存到数据库的表中 3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个"ip_