第四次过程性考核

Posted yyh1234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四次过程性考核相关的知识,希望对你有一定的参考价值。

*160120 

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

要求: 

  • 1.客户端从控制台进行输入,并将客户端的输出内容和时间保存到“学号.txt”文件中
  • 2.服务器端读取到客户端的程序后,给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到文本文件中
  • 3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个“学号_ip.txt”的文件
  • 4.4.提交文件结果包括:代码,通信后生成的txt文件

程序设计思路:先编写代码,让客户端和服务器能通信,在添加日志文件

运用到的知识点:多线程,文件的输入与存储,套接字

 

客户端:

  1 import java.awt.EventQueue;
  2 import java.awt.event.ActionEvent;
  3 import java.awt.event.ActionListener;
  4 import java.io.*;
  5 import java.net.*;
  6 import java.util.*;
  7 
  8 import javax.swing.JButton;
  9 import javax.swing.JFrame;
 10 import javax.swing.JLabel;
 11 import javax.swing.JPanel;
 12 import javax.swing.JScrollPane;
 13 import javax.swing.JTextArea;
 14 import javax.swing.JTextField;
 15 import javax.swing.SwingConstants;
 16 import javax.swing.border.EmptyBorder;
 17 public class Client extends JFrame {
 18     private JPanel contentPane;
 19     private Socket socket;
 20     private JTextArea textArea;
 21     private JTextField textField;
 22     private JTextField textField1;
 23     private OutputStream out;
 24     private InputStream is;
 25     public static void main(String[] args) {
 26         EventQueue.invokeLater(new Runnable() {
 27             public void run() {
 28                 try {
 29                     Client frame = new Client();
 30                     frame.setVisible(true);
 31                 } catch (Exception e) {
 32                     e.printStackTrace();
 33                 }
 34             }
 35         });
 36     }
 37     public Client() throws UnknownHostException, IOException {
 38         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 39         setBounds(100, 100, 450, 300);
 40         contentPane = new JPanel();
 41         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
 42         setContentPane(contentPane);
 43         contentPane.setLayout(null);
 44         
 45         JPanel panel = new JPanel();
 46         panel.setBounds(10, 10, 398, 39);
 47         contentPane.add(panel);
 48         
 49         JLabel lblNewLabel = new JLabel("u6635u79F0uFF1A");
 50         panel.add(lblNewLabel);
 51         
 52         textField = new JTextField();
 53         textField.setText("u6E38u5BA2");
 54         panel.add(textField);
 55         textField.setColumns(20);
 56         
 57         JScrollPane scrollPane = new JScrollPane();
 58         scrollPane.setBounds(10, 59, 398, 143);
 59         contentPane.add(scrollPane);
 60         
 61         textArea = new JTextArea();
 62         scrollPane.setViewportView(textArea);
 63         
 64         JPanel panel1 = new JPanel();
 65         panel1.setBounds(10, 212, 398, 39);
 66         contentPane.add(panel1);
 67         
 68         JLabel lblNewLabel_1 = new JLabel("u8F93u5165u804Au5929u5185u5BB9");
 69         panel1.add(lblNewLabel_1);
 70         
 71         textField1 = new JTextField();
 72         panel1.add(textField1);
 73         textField1.setColumns(20);
 74         
 75         JButton btnNewButton = new JButton("u53D1u9001");
 76         btnNewButton.addActionListener(new ActionListener() {
 77             public void actionPerformed1(ActionEvent e) {
 78                 try{
 79                     out=socket.getOutputStream();
 80                     String name=textField.getText()+":";
 81                     String text=name+textField1.getText()+"
";
 82                     out.write(text.getBytes());
 83                     out.flush();
 84                     textField1.setText("");
 85                 }catch(IOException e1){
 86                     e1.printStackTrace();
 87                 }
 88             }
 89 
 90             public void actionPerformed(ActionEvent arg0) {
 91                 
 92             }
 93         });
 94         btnNewButton.setHorizontalAlignment(SwingConstants.RIGHT);
 95         panel1.add(btnNewButton);
 96         
 97         socket=new Socket("127.0.0.1",8889);
 98         receiveMessage();
 99     }
100 
101     private void receiveMessage() {
102         new Thread(){
103             public void run(){
104                 try{
105                     is=socket.getInputStream();
106                     Scanner scan=new Scanner(is);
107                     while(socket.isConnected()){
108                         String text=scan.nextLine()+"
";
109                         textArea.append(text);
110                         sleep(100);
111                     }
112                 }catch(Exception e){
113                     e.printStackTrace();
114                 }
115             }
116         }.start();
117     }
118 }

服务器:

 

以上是关于第四次过程性考核的主要内容,如果未能解决你的问题,请参考以下文章

第四次过程性考核

第四次过程性考核

第四次过程性考核

第四次过程性考核

第四次过程性考核

第四次过程性考核