JAVA进阶15

Posted anemia-boy

tags:

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

 

间歇性混吃等死,持续性踌躇满志系列-------------第15天

1、TCP网络程序

技术图片
 1 package code0329;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.IOException;
 5 import java.io.InputStreamReader;
 6 import java.net.ServerSocket;
 7 import java.net.Socket;
 8 
 9 public class MyTcp {
10     //创建BufferedReader对象
11     private BufferedReader reader;
12     //创建ServerSocket对象
13     private ServerSocket server;
14     //创建Socket对象socket
15     private Socket socket;
16 
17     void getserver() {
18         try {
19             //实例化Socket对象
20             server = new ServerSocket(8998);
21             System.out.println("服务器套接字已经创建成功");
22             //如果套接字是连接状态
23             while (true) {
24                 //输出信息
25                 System.out.println("等待客户机的连接");
26                 //实例化Socket对象
27                 socket = server.accept();
28                 //实例化BufferedReader对象
29                 reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
30                 //调用getClientMessage()方法
31                 getClientMessage();
32             }
33         } catch (Exception e) {
34             e.printStackTrace();
35         }
36     }
37 
38     private void getClientMessage() {
39         try {
40             //如果套接字是连接状态
41             while (true) {
42                 //获得客户端信息
43                 System.out.println("客户机:" + reader.readLine());
44             }
45         } catch (Exception e) {
46             //输出异常信息
47             e.printStackTrace();
48         }
49         try {
50             if (reader != null) {
51                 //关闭流
52                 reader.close();
53             }
54             if (socket != null) {
55                 //关闭套接字
56                 socket.close();
57             }
58         } catch (IOException e) {
59             e.printStackTrace();
60         }
61     }
62 
63     public static void main(String[] args) {
64         //创建本类对象
65         MyTcp tcp = new MyTcp();
66         //调用方法
67         tcp.getserver();
68         tcp.getClientMessage();
69     }
70 }
View Code

运行结果图

技术图片

2、客户端程序,实现将用户在文本框中输入的信息发送至服务器端,并将文本框中输入的信息显示在客户端的文本框中

技术图片
 1 package code0329;
 2 
 3 import javax.swing.*;
 4 import java.awt.*;
 5 import java.awt.event.ActionEvent;
 6 import java.awt.event.ActionListener;
 7 import java.io.PrintWriter;
 8 import java.net.Socket;
 9 
10 //创建类继承JFrame类
11 public class MyClien extends JFrame {
12     //声明PrintWriter类对象
13     private PrintWriter writer;
14     //声明Socket对象
15     Socket socket;
16     //创建JTextArea对象
17     private JTextArea ta = new JTextArea();
18     //创建JTextField对象
19     private JTextField tf = new JTextField();
20     //声明Container对象
21     Container cc;
22 
23     //构造方法
24     public MyClien(String title){
25         //调用父类的构造方法
26         super(title);
27         //实例化对象
28         cc = this.getContentPane();
29         //将文本域放在窗体的上部
30         cc.add(ta,"North");
31         //将文本框放在窗体的下部
32         cc.add(tf,"South");
33         //绑定事件
34         tf.addActionListener(new ActionListener() {
35             @Override
36             public void actionPerformed(ActionEvent e) {
37                 //将文本框中的信息写入流
38                 writer.println(tf.getText());
39                 //将文本框中信息显示在文本域中
40                 ta.append(tf.getText()+‘\\n‘);
41                 //将文本框清空
42                 tf.setText(" ");
43             }
44         });
45     }
46     //连接套接字方法
47     private void connect(){
48         //文本域中的提示信息
49         ta.append("尝试连接\\n");
50         try{
51             //实例化Socket对象
52             socket = new Socket("192.168.2.13",1521);
53             //获得输出流对象
54             writer = new PrintWriter(socket.getOutputStream(),true);
55             //文本框中提示信息
56             ta.append("尝试连接\\n");
57         }catch (Exception e){
58             //输出异常信息
59             e.printStackTrace();
60         }
61     }
62 
63     public static void main(String[] args) {
64         //创建本例对象
65         MyClien clien = new MyClien("向服务器送数据");
66         //设置窗体位置和大小
67         clien.setBounds(400,300,350,250);
68         //调用连接方法
69         clien.connect();
70     }
71 }
View Code

3、Math类

技术图片

技术图片
 1 package cn.intcast.demo15;
 2 
 3 public class Code01Math {
 4     public static void main(String[] args) {
 5         //获取绝对值
 6         System.out.println(Math.abs(-111));     //111
 7         //向上取整
 8         System.out.println(Math.ceil(51.1));    //52.0
 9         //向下取整
10         System.out.println(Math.floor(51.1));   //51.0
11         //四舍五入
12         System.out.println(Math.round(51.1));   //51
13         //圆周率
14         System.out.println(Math.PI);
15     }
16 }
View Code

运行结果图

 技术图片

4、 计算在[-10.9,5.8]之间绝对值大于6和绝对值小于2.1的整数个数

技术图片
 1 package cn.intcast.demo15;
 2 
 3 public class Code01Math {
 4     public static void main(String[] args) {
 5         int count = 0;
 6         double min = -10.9;
 7         double max = 5.8;
 8         for (int i = (int) min; i<max;i++){
 9             int abs = Math.abs(i);
10             if(abs>6||abs<2.1){
11                 //System.out.print(i+",");
12                 count++;
13             }
14         }
15         System.out.println(count);
16     }
17 }
View Code

运行结果图

技术图片

5、

以上是关于JAVA进阶15的主要内容,如果未能解决你的问题,请参考以下文章

如何在片段中使用 GetJsonFromUrlTask​​.java

JAVA进阶15

Atom编辑器入门到精通 Atom使用进阶

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段