JAVA進階15
阿新 • • 發佈:2019-03-30
輸出流 ack .com tac per 文本框 oid nts jtextarea
間歇性混吃等死,持續性躊躇滿誌系列-------------第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對象View Code11 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(newInputStreamReader(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 }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