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-异常处理-66
异常和错误 # 1/0 # name # 2+'3' # [][3] #{}['k'] try: ') # 1/0 ') # name # 2+'3' # [][3] # {}['k'] ret = ...
- codeforces#1136E. Nastya Hasn't Written a Legend(二分+线段树)
题目链接: http://codeforces.com/contest/1136/problem/E 题意: 初始有a数组和k数组 有两种操作,一,求l到r的区间和,二,$a_i\pm x$ 并且会有 ...
- 编译安装MySQL5.6失败的相关问题解决方案
Q0:需要安装git 解决方案: #CentOS yum install git #ubuntu apt-get install git Q1:CMAKE_CXX_COMPILER could be ...
- SpringBoot+AOP整合
SpringBoot+AOP整合 https://blog.csdn.net/lmb55/article/details/82470388 https://www.cnblogs.com/onlyma ...
- Html,CSS和盒子
Html指超文本标记语言(HyperText Markup Language)是一种用于创建网页的标准标记语言. CSS 指层叠样式表 (Cascading Style Sheets),样式定义如何显 ...
- 【linux】Python3.6安装报错 configure: error: no acceptable C compiler found in $PATH
安装python的时候出现如下的错误: [root@master ~]#./configure --prefix=/usr/local/python3.6 checking build system ...
- python之单例模式、栈、队列和有序字典
一.单例模式 import time import threading class Singleton(object): lock = threading.RLock() # 定义一把锁 __inst ...
- [2019.03.20]Linux Shell 执行传参数和expr
前不久入职实习生,现在在帮着组里面dalao们跑Case,时不时要上去收一下有木有Dump,每次敲命令太烦人于是逼着自己学写Shell脚本.一开始真的是很痛苦啊,也没能搞到书,只能凭网上半真半假的消息 ...
- mybatis-generator自动生成代码插件
mybatis自动生成代码(实体类.Dao接口等)是很成熟的了,就是使用mybatis-generator插件. 它是一个开源的插件,使用maven构建最好,可以很方便的执行 插件官方简介: http ...
- c do{}while(0)
1 goto bool foo(){ int *p = (int*)malloc(5*sizeof(int)); bool bOk = true;//执行并处理错误 if(!fun1()) goto ...