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 }
运行结果图
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 }
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 }
运行结果图
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 }
运行结果图
5、