企业网站备案不通过,佛山网站建设公司哪家好,wordpress如何跳转页面代码,做百科需要参考的网站https://gitee.com/liuji1/fourth_process_assessment (一) 问题#xff1a;使用套接写连接编写一个简单的聊天室程序#xff0c;客户端主函数放在Client_Main.java文件中#xff0c;服务器端主函数放在Server_Main.java文件中 (二) 要求#xff1a; 1.客户端从控制台进行…https://gitee.com/liuji1/fourth_process_assessment (一) 问题使用套接写连接编写一个简单的聊天室程序客户端主函数放在Client_Main.java文件中服务器端主函数放在Server_Main.java文件中 (二) 要求 1.客户端从控制台进行输入并将客户端的输出内容和时间保存到“学号.txt”文件中2.服务器端读取到客户端的程序后给客户端以回应并将客户端的输入内容与服务端的输出内容、时间保存到文本文件中3.要求服务器端可以实现同时与多个客户端进行通信与每一个客户端通信的内容保存为一个“学号_ip.txt”的文件4..提交文件结果包括代码通信后生成的txt文件(三) 程序设计思路 看到题首先想到的张三李四单线程通信问题后来展开到多线程问题时怎么都不对在书上P404多线程例题上抄写下来的但是其中还是有很多问题运行结果也不对 例题思路客户输入圆的半径并发送给服务器服务器把计算出的圆的面积返回给客户。因此可以将计算量大的工作放在服务器端客户端负责计算量小的工作实现客户-服务器交互计算来完成某项任务。 (四) 代码片段 Client_Main 代码 import java.io.*;
import java.net.*;
import java.util.*;
public class Client_Main {/*** param args*/public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner new Scanner (System.in);Socket mysocket null;DataInputStream in null;DataOutputStream out null;Thread readData;Read_Main read null;try {mysocket new Socket();read new Read_Main();readData new Thread(read);System.out.print(输入服务器的IP); //负责读取信息的线程String IP scanner.nextLine();System.out.print(输入服务器的IP);int port scanner.nextInt();if(mysocket.isConnected()){}else{InetAddress address InetAddress.getByName(IP);InetSocketAddress socketAddress new InetSocketAddress(address,port);mysocket.connect(socketAddress);in new DataInputStream(mysocket.getInputStream());out new DataOutputStream(mysocket.getOutputStream());read.setDataInputStream(in);readData.start(); //启动负责读取信息的线程}}catch(Exception e){System.out.println(服务器已断开 e);}System.out.println(输入圆的半径放弃请输入N:);while(scanner.hasNext()) {double radius 0;try {radius scanner.nextDouble();}catch(InputMismatchException exp){System.exit(0);} try {out.writeDouble(radius); //向服务器发送信息}catch(Exception e) { }}}
} Read_Main 代码 import java.io.DataInputStream;
import java.io.IOException;
public class Read_Main implements Runnable {DataInputStream in;/*** param args*/public static void setDataInputStream(DataInputStream in) {// TODO Auto-generated method stubthis.in in;}public void run() {double result 0;while(true) {try { result in.readDouble(); //读取服务器发送来的信息System.out.println(圆的面积 result);System.out.print(输入圆的半径放弃请输入N);}catch (IOException e) {System.out.println(与服务器断开 e);break;}}}
} Server_Main 代码 import java.io.*;
import java.net.*;
import java.util.*;
public class Server_Main {public static void main(String[] args) {ServerSocket server null;ServerThread thread;Socket you null;while(true){try{ server new ServerSocket(2010);}catch(IOException e1){System.out.println(正在监听); ServerSocket对象不能重复创建}try{ System.out.println(等待客户呼叫);you server.accept();System.out.println(客户的地址you.getInetAddress());}catch(IOException e){System.out.println(正在等待客户);}if (you!null){new ServerThread(you).start(); //为每个客户启动一个专门的线程}}}
}
class ServerThread extends Thread{Socket socket;DataOutputStream out null;DataInputStream in null;String s null;ServerThread(Socket t){socket t;try{ out new DataOutputStream (socket.getOutputStream());in new DataInputStream (socket.getInputStream());}catch (IOException e){}}public void run(){while (true){try{double r in.readDouble(); //阻塞状态除非读取到信息double areaMath.PI*r*r;out.writeDouble(area); }catch (IOException e){System.out.println(客户离开);return;}}}
} 五使用到的知识点 多线程技术套接字基本原则服务器应当启动一个专门的线程在该线程中和客户的套接字建立连接由于套接字的输入流在读取信息时可能发生阻塞客户端和服务器端都需要在一个单独的线程中读取信息if 条件分支语句while 循环语句try...catch语句块等等六运行结果 七在编程中出错的过程及解决问题的过程 Read_Main 代码中 this.in in; this有问题代码参照P404多线程敲写的命令在考核过程中未解决此问题将会在实训时问老师考核过程编写代码时首先想到老师上课所讲有关于张三李四单线程通信问题后来参照书上多线程的题进行抄写的有些代码问题已用es...软件所解决但是还有部分错误运行结果也不对八考核总结及其意见 通过这次考核发现自己对于单线程展开的问题学习的不到位导致考试多线程问题没有很好解决通过这学期学习java课程自己学习到很多东西其中 if 条件分支 ,while,for,do-while循环语句单线程通信以及SQL结构化语句等等掌握不错但是有关于类与对象和子类与继承学习的不好而且自己独自敲写代码很费劲大部分语句块掌握不好有的甚至运用不恰当希望以后老师对于代码编程方面能够讲解的再详细点尽量让我们多动手独自编写一些代码在实训过程中要努力完善不足为小组做出贡献加油九代码和博客字数统计 学习内容代码行博客字java入门5行1000字输入输出数据65行 条件分支语句28行 循环语句47行 常用实用类86行 数组92行 类与对象子类与继承600行 java多线程SQL结构化语句900行 第一次过程性考核180行900字第二次过程性考核650行500字第三次过程性考核130行500字总计2783行2900字转载于:https://www.cnblogs.com/liuji1/p/10129413.html