JAVA进阶15
间歇性混吃等死,持续性踌躇满志系列-------------第15天
1、TCP网络程序
package code0329; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket; public class MyTcp {
//创建BufferedReader对象
private BufferedReader reader;
//创建ServerSocket对象
private ServerSocket server;
//创建Socket对象socket
private Socket socket; void getserver() {
try {
//实例化Socket对象
server = new ServerSocket(8998);
System.out.println("服务器套接字已经创建成功");
//如果套接字是连接状态
while (true) {
//输出信息
System.out.println("等待客户机的连接");
//实例化Socket对象
socket = server.accept();
//实例化BufferedReader对象
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//调用getClientMessage()方法
getClientMessage();
}
} catch (Exception e) {
e.printStackTrace();
}
} private void getClientMessage() {
try {
//如果套接字是连接状态
while (true) {
//获得客户端信息
System.out.println("客户机:" + reader.readLine());
}
} catch (Exception e) {
//输出异常信息
e.printStackTrace();
}
try {
if (reader != null) {
//关闭流
reader.close();
}
if (socket != null) {
//关闭套接字
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
} public static void main(String[] args) {
//创建本类对象
MyTcp tcp = new MyTcp();
//调用方法
tcp.getserver();
tcp.getClientMessage();
}
}
运行结果图
2、客户端程序,实现将用户在文本框中输入的信息发送至服务器端,并将文本框中输入的信息显示在客户端的文本框中
package code0329; import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import java.net.Socket; //创建类继承JFrame类
public class MyClien extends JFrame {
//声明PrintWriter类对象
private PrintWriter writer;
//声明Socket对象
Socket socket;
//创建JTextArea对象
private JTextArea ta = new JTextArea();
//创建JTextField对象
private JTextField tf = new JTextField();
//声明Container对象
Container cc; //构造方法
public MyClien(String title){
//调用父类的构造方法
super(title);
//实例化对象
cc = this.getContentPane();
//将文本域放在窗体的上部
cc.add(ta,"North");
//将文本框放在窗体的下部
cc.add(tf,"South");
//绑定事件
tf.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//将文本框中的信息写入流
writer.println(tf.getText());
//将文本框中信息显示在文本域中
ta.append(tf.getText()+'\n');
//将文本框清空
tf.setText(" ");
}
});
}
//连接套接字方法
private void connect(){
//文本域中的提示信息
ta.append("尝试连接\n");
try{
//实例化Socket对象
socket = new Socket("192.168.2.13",1521);
//获得输出流对象
writer = new PrintWriter(socket.getOutputStream(),true);
//文本框中提示信息
ta.append("尝试连接\n");
}catch (Exception e){
//输出异常信息
e.printStackTrace();
}
} public static void main(String[] args) {
//创建本例对象
MyClien clien = new MyClien("向服务器送数据");
//设置窗体位置和大小
clien.setBounds(400,300,350,250);
//调用连接方法
clien.connect();
}
}
3、Math类
package cn.intcast.demo15; public class Code01Math {
public static void main(String[] args) {
//获取绝对值
System.out.println(Math.abs(-111)); //111
//向上取整
System.out.println(Math.ceil(51.1)); //52.0
//向下取整
System.out.println(Math.floor(51.1)); //51.0
//四舍五入
System.out.println(Math.round(51.1)); //51
//圆周率
System.out.println(Math.PI);
}
}
运行结果图
4、 计算在[-10.9,5.8]之间绝对值大于6和绝对值小于2.1的整数个数
package cn.intcast.demo15; public class Code01Math {
public static void main(String[] args) {
int count = 0;
double min = -10.9;
double max = 5.8;
for (int i = (int) min; i<max;i++){
int abs = Math.abs(i);
if(abs>6||abs<2.1){
//System.out.print(i+",");
count++;
}
}
System.out.println(count);
}
}
运行结果图
5、
JAVA进阶15的更多相关文章
- Java进阶(三)多线程开发关键技术
原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...
- 从ConcurrentHashMap的演进看Java多线程核心技术 Java进阶(六)
本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为.同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1. ...
- Java进阶(七)正确理解Thread Local的原理与适用场景
原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...
- JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法
JAVA进阶之旅(一)--增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法 学完我们的java之旅,其实收获还是很多的,但是依然还有很 ...
- Java进阶(三十二) HttpClient使用详解
Java进阶(三十二) HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们 ...
- Java进阶(五十三)屡试不爽之正则表达式
Java进阶(五十三)屡试不爽之正则表达式 在线测试网址: http://tool.oschina.net/regex/# 上面的在线测试网址,含有正则表达式的生成,非常实用.大家共勉之! 匹配中文: ...
- Java进阶(五十二)利用LOG4J生成服务日志
Java进阶(五十二)利用LOG4J生成服务日志 前言 由于论文写作需求,需要进行流程挖掘.前提是需要有真实的事件日志数据.真实的事件日志数据可以用来发现.监控和提升业务流程. 为了获得真实的事件日志 ...
- Java进阶之路
Java进阶之路——从初级程序员到架构师,从小工到专家. 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序 ...
- java进阶视频分享
更多资源和教程请关注公众号:非科班的科班. 如果觉得我写的还可以请给个赞,谢谢大家,你的鼓励是我创作的动力 课程目录介绍 01.开班仪式02.并发编程专题之多线程基础03.并发编程专题之Java内存模 ...
随机推荐
- python 中 try catch finally语句中含有return语句的执行情况
无论是在try还是在except中,遇到return时,只要设定了finally语句,就会中断当前的return语句,跳转到finally中执行,如果finally中遇到return语句,就直接返回, ...
- [原创]Java应用性能远程监控系统(C/S架构)
Java应用性能远程监控系统(使用C/S架构) 适用于监控所有Java应用,具有堆内存监控.方法区监控.GC监控.类加载监控.类编译监控与线程监控,提供堆快照下载,线程快照下载.体验网址:http:/ ...
- vuex直接修改state 与 用dispatch/commit来修改state的差异
一. 使用vuex修改state时,有两种方式: 1.可以直接使用 this.$store.state.变量 = xxx; 2.this.$store.dispatch(actionType, pay ...
- 菜鸟学IT-分布式版本控制系统Git的安装与使用
分布式版本控制系统Git的安装与使用 本次作业要求来于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 一.首先在window ...
- JMeter_JDBC 性能测试
用JMeter做JDBC测试配置步骤: 1.测试计划中添加mysql-connector-java-5.1.41-bin.jar 注意: 这里需要注意的是,在不同的环境(Windows或Linux)下 ...
- 在Asp.Net Core中集成Kafka
在我们的业务中,我们通常需要在自己的业务子系统之间相互发送消息,一端去发送消息另一端去消费当前消息,这就涉及到使用消息队列MQ的一些内容,消息队列成熟的框架有多种,这里你可以读这篇文章来了解这些MQ的 ...
- mongodb备份还原
备份:mongodump mongodump常用参数 --db:指定导出的数据库 --collection:指定导出的集合 --excludeCollection:指定不导出的集合 --host :远 ...
- java 枚举2
package com.wsy.test; public enum Color { RED("红色",1),GREEN("绿色",2),BLUE("蓝 ...
- HDU 4547 CD操作
传送门 没啥好说的.就是一个LCA. 不过就是有从根到子树里任意一个节点只需要一次操作,特判一下LCA是不是等于v.相等的话不用走.否则就是1次操作. 主要是想写一下倍增的板子. 倍增基于二进制.暴力 ...
- 17年iPhone炫酷铃声,mp3、m4r格式下载
下载链接: https://pan.baidu.com/s/11aj9dBm9upNWpE5jWBgYog