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内存模 ...
随机推荐
- QTableWidgetItem class
Help on class QTableWidgetItem in module PyQt5.QtWidgets: class QTableWidgetItem(sip.wrapper) | QT ...
- 5年后,我们为什么要从 Entity Framework 转到 Dapper 工具?
前言 时间退回到 2009-09-26,为了演示开源项目 FineUI 的使用方法,我们发布了 AppBox(通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块),最初的 ...
- C# .NET 0配置使用Wcf(半成品)
设计原则:万物皆对象 背景:微软提供了一套强大的通信框架Wcf,了解请看百度百科:ttps://baike.baidu.com/item/Wcf/7374854?fr=aladdin 虽然这套通信框架 ...
- 求导程序编写(oo-java编程)
本单元的任务为求导. 即将一个含自变量x的多项式F求导成为另外一个含自变量x的多项式f.使得 dF/dx = f 为降低我们的难度,这个任务被分解成了三个阶段: (1)对幂函数进行求导(不允许嵌套) ...
- Java Core - ‘==’和‘equals’的区别
不管是‘==’还是‘equals’,他们的比较都需要区分类型来讨论的: ‘==’ 当比较的数据类型是基本类型时,比较值是否相同 当比较的数据类型是引用类型时,不仅比较值相同还比较其所在内存地址是否相同 ...
- css实现垂直水平居中的方法
html结构: <div class="box"> <div>垂直居中</div> </div> 方法1:display:flex ...
- telnet-server、telnet
1.查询yum仓库中的安装包 [root@localhost /]# yum list |grep telnettelnet.x86_64 1 ...
- codeforces 796A-D
决定在 codeforces 练题啦,决定每个比赛刷前四道...太难就算了 796A Buying A House 题意:给出x轴上的n 个点,每个点有个权值,问离m 点最近的权值小于等于k 的点离m ...
- list遍历时删除的坑
1.测试代码如下: public class StrTest { public static void main(String[] args) { ArrayList<String> li ...
- 2019-04-04 Mybatis学习知识点
1. 比较#和$的区别 #是占位符?,$是字符串拼接.因此使用$的时候,如果参数是字符串类型,那么要使用引号 尽量使用#而不是$ 当参数表示表名或列名的时候,只能使用$ 2. 多参数时候 配置文件中使 ...