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内存模 ...
随机推荐
- Riemann流形上的梯度,散度与Laplace算子
今天(准确地说是昨天)被学物理的同学问到Stokes定理,想起来我还有一个知道但没有细看的东西,下面整理成提示完整的习题记录一下. 这部分内容将会加进几何学观止,敬请期待.目前正在纂写代数几何簇的部分 ...
- 01-Django介绍和安装
01-Django介绍和安装 1.Django介绍 1.1介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M(Model),视图V(View)和控 ...
- DevOps时代,企业数字化转型需要强大的工具链
伴随时代的飞速进步,中国的人口红利带来了互联网业务的快速发展,巨大的流量也带动了技术的不断革新,研发的模式也在不断变化.传统企业纷纷效仿互联网的做法,结合DevOps进行数字化的转型. 通常提到Dev ...
- KVM宿主机上虚拟机动态添加新磁盘
(1)KVM宿主机查看运行的虚拟机 $ virsh list --all (2)将qcow2的磁盘移动到/var/lib/libvirt/images/,比如为centos.qcow2 (3)进入/e ...
- Jdbc、Mybatis、Hibernate各自优缺点及区别
文章出处:Jdbc,Mybatis,Hibernate各自优缺点及区别 先比较下jdbc编程和hibernate编程各自的优缺点. 1.JDBC 我们平时使用jdbc进行编程,大致需要下面几个步骤: ...
- 【刷题】Git知识点
参考:学习总结之Git学习-总 1-origin是什么? 答:origin 是默认的远程版本库名称,可以在 .git/config 之中进行修改.在默认情况下,origin指向的就是你本地的代码库托管 ...
- yarn 在Vue框架中的常用命令
初始化项目 yarn add init 安装vue yarn add vue 安装webpack,webpack-dev-server(是一个小型的Node.js Express服务器) yarn a ...
- NodeJS脚本启动工具总结
1. 使用npm 2. 使用pm2 安装: npm install pm2 -g 启动: NODE_ENV=test pm2 start newsCrawler.js 停止: pm2 stop new ...
- parcel+vue入门
一.parcel简单使用 npm install -D parcel-bundler npm init -y (-y表示yes,跳过项目初始化提问阶段,直接生成package.json 文件.) Pa ...
- nginx的限流问题
nginx的限流问题 http{ limit_req_zone $binary_remote_addr zone=req_one:10m rate=100r/s;server{ listen 8080 ...