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内存模 ...
随机推荐
- Vue(五)Vue规范
代码规范很重要 1.组件名应该始终是多个单词的,根组件 App 除外. 2.组件的 data 必须是一个函数. // In a .vue file export default { data () { ...
- Neutron vxlan network--L2 Population
L2 Population 是用来提高 VXLAN 网络 Scalability 的. 通常我们说某个系统的 Scalability 好,其意思是: 当系统的规模变大时,仍然能够高效地工作. L2 ...
- 使用队列实现栈(1)(Java)
class MyStack { private Queue q1; private Queue q2; public MyStack(int size) { this.q1 = new Queue(s ...
- vue填坑指南之模板的使用
坑提示:"The template root requires exactly one element" Src下面有个App.vue文件,在index里引用了这个文件以后,我在. ...
- git常用命令二、:git stash
Git stash 储藏工作现场(当你不得不新建分支,或者切换分支,但是当前工作区的修改并不想提交) git stash Saved working directory and index state ...
- BZOJ3032 七夕祭
https://remmina.github.io/BZPRO/JudgeOnline/3032.html 题目 背景 七夕节因牛郎织女的传说而被扣上了「情人节」的帽子.于是TYVJ 今年举办了一次线 ...
- Leetcode 5
HashTable Easy 1. 136. Single Number 0与0异或是0,1与1异或也是0,那么我们会得到0 class Solution { public: int singleNu ...
- Logback日志基础配置以及自定义配置
Logback日志基础配置 logback日志配置有很多介绍,但是有几个非常基础的,容易忽略的.下面是最简单的一个配置,注意加粗的描述 <?xml version="1.0" ...
- Docke--利用 commit 理解构建镜像
Docker 利用commit理解构建镜像 镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础.当我们使用Docker Hub的镜像无法满足我们的需求时,我们就 ...
- C#利用 HttpWebRequest 类发送post请求,出现“套接字(协议/网络地址/端口)只允许使用一次”问题
声明:问题虽然已经被解决,但是并没有明白具体原理,欢迎大佬补充. 最近网站出现一个问题,在C#里面使用 HttpWebRequest 类去发送post请求,偶尔 会出现 “套接字(协议/网络地址/端 ...