第八天Java基础(网络编程)

车辆贷款违约预测挑战赛 2021科大讯飞-车辆贷款违约预测挑战赛--方案简介车贷违约预测问题,目的是建立风险识别模型来预测可能违约的借款人。预测结果为借款人是否可能违约,属于二分类问题。偏数据挖掘的比赛,关键点是如何基于对数据的理解抽象归纳出有用的特征。站在大佬的视角,尝试学习总结,站在巨人的肩膀上,也许看得会更远一些。直接进入主题,开始学习套路,芜湖~特征工程1、常用库、数据导入import pandas as pd import numpy as np import lightgbm as lgb import xgboost 阅读详情

1.TCP/IP协议

三次握手
1.客户端请求服务器,等待服务器确认
2.服务端回应客户端,通知连接
3.客户端再次请求服务器,进行连接确认

1.1 IP地址

IPv4:32位的二进制数,分为4个字节,a.b.c.d 的形式 0~255
ipv6:
常用的命令
ipconfig 本机IP
ping 空格 IP地址 网络是否联通

1.2 端口号

2.TCP通信

2.1 Socket类

public static void main(String[] args) throws IOException {
        //1.创建socket用于连接服务器
        Socket socket = new Socket("localhost",8888);
        //2.获取写流(输出流,开始写东西),
        OutputStream os = socket.getOutputStream();
        os.write("你好服务器2222!".getBytes());
        os.flush();
        //3.获取读流(输入流,开始读东西)
        InputStream is = socket.getInputStream();
        byte []bytes = new byte[1024];
        int len = is.read(bytes);
        System.out.println(new String(bytes,0,len));
        //4.释放资源
        socket.close();
    }

2. ServerSocket类

注意,Socket的InputStream在读取到null后会进入阻塞状态,所以在写流结束后应该调用sss告诉流,结束。

public static void main(String[] args) throws IOException {
        //1.获取ServerSocket用于获取客户端的socket
        ServerSocket server = new ServerSocket(8888);
        Socket socket = server.accept();
        //2.读取客户端发送的消息
        InputStream is = socket.getInputStream();//读取数据的流,也叫输入流
        byte []bytes = new byte[1024];
        int read = is.read(bytes);
        System.out.println(new String(bytes,0,read));
        //3.给客户端返回消息
        OutputStream os = socket.getOutputStream();//写数据的流,也叫输出流
        os.write("服务器接收到消息!".getBytes());
        os.flush();
        //4.释放资源
        socket.close();
        server.close();
    }

3. 小练习文件上传

1.服务端代码

package mode06;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;

/**
 * 服务器类
 */
public class CopServer {
    public static void main(String[] args)throws IOException{
        openServer("D:\\word\\f");
    }
    /**
     * 保存文件的方式
     * @param filePath
     * 1.
     */
    private static void openServer(String filePath) throws IOException{
        final int path = 8888;//定义一个常量带表服务器端口号
        ServerSocket server = new ServerSocket(path);//获取server
        while(true){//获取多个客户端
            Socket socket = server.accept();//1.获取socket,注意在确认有客户端访问之前什么也别做
            new Thread(()-> {//开启线程,使得效率更高
                    InputStream is = null;
                    File file = new File(filePath);//创建文件夹
                    if (!file.isDirectory()) file.mkdirs();//如果文件夹不存在,就创建
                    String fileName = "zpx"+System.currentTimeMillis()+new Random().nextInt(9999)+".jpg";//文件名
                    FileOutputStream fos = null;//文件输出流,写文件
                    try {
                        fos = new FileOutputStream(file+"\\"+fileName);//定义写文件
                        is = socket.getInputStream();//2.获取socket输入流
                        int len = 0;
                        byte []bytes = new byte[1024];
                        while((len = is.read(bytes))!=-1){
                            fos.write(bytes);//3.将获取到的字符流写入到文件输出流中
                        }
                    }catch(IOException e){
                        System.out.println(e.toString());
                    }finally{
                        try {
                            fos.close();
                            socket.close();//4.关闭流
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
            }).start();
        }
    }
}

2.客户端

package mode06;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class CopSocket {
    public static void main(String[] args) throws IOException {
        show();
        show();
        show();
    }

    private static void show() throws IOException{
        Socket socket = new Socket("localhost",8888);
        OutputStream os = socket.getOutputStream();
        File file = new File("D:\\word\\c\\d");
        FileInputStream fis = new FileInputStream(file+"\\timg (2).jpg");
        int len = 0;
        byte []bytes = new byte[1024];
        while ((len = fis.read(bytes))!= -1){
            os.write(bytes);
        }
        socket.shutdownOutput();
    }

}

PCL 利用RANSAC改进的ICP算法 本文介绍了一种基于RANSAC改进的ICP点云配准算法。算法原理部分阐述了在ICP迭代过程中使用RANSAC剔除错误匹配点对的方法。 阅读详情

相关推荐

手把手教你用TUSB2E22中继器实现eUSB2与USB 2.0互转(附实测数据对比)

本文详细介绍了如何利用TUSB2E22中继器实现eUSB2与USB 2.0的高效互转,包括技术背景、硬件设计要点、信号完整性测试方法及故障排查策略。通过实测数据对比,展示了TUSB2E22在信号延迟、功耗和眼图性能上的显著优势,为工程师提供了实用的工程方案。

weixin_29199873的博客 283

学习Java第八天:Java网络编程

由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP的分配越发紧张,为了扩大空间,拟通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,表示成ABCD:EF01:2345:6789:ABCD:EF01:2345:6789,号称可以为全世界的每一粒沙子编上一个网址,这样就解决了网络地址资源数量不够的问题。两种架构各有优势,但是无论哪种架构,都离不开网络的支持,网络编程,就是在一定的协议下,实现两台计算机的通信的程序。

Java的第一人称视角 235

华为手环实时心率数据导出到UWP项目中

hello大家好呀O(∩_∩)O最近在做毕设 其中有个小功能要用到实时心率数据。查找网上的资料发现只有小米手环的实时心率数据导出但是没有华为手环的,我试了华为手环但是并不能行得通哈哈哈。现在分享一下华为手环实时心率数据导出的代码。

apple_63713858的博客 1583

学习java 第八天

网络编程 打电话:TCP 发短信:UDP 网络通信的要素 1、网络编程中有两个主要的问题 如何准确的定位网络上的一台或多台主机 找到主机之后如何进行编程 2、网络编程中的要素 ip 和 端口号 网络通信协议 UDP TCP 3、万物皆对象 IP ip地址:InetAddress(无构造器) 唯一定位一台网路上的计算机 127.0.0.1 : 本机localhost ip地址分类 ipv4/ipv6

琉先森的博客 773

JavaFX - 动画

JavaFX 动画

思你日度难眠 1603

tuts4you-lena151-Crackme-tutorial06

一、前言      本次研究的是lena151-Crackme-tutorial06,也是一个应用程序,但因为平台迭代的关系,程序不能正常运行,只能完成部分破解。 (一)·本次我们要破解的目标是个应用程序,如下图 (二)、使用工具:x32dbg 二、过程 这个程序的破解的方法很多,首先最简单的一种不外乎就是搜索字符串,我就按照这个思路来完成。 (一)查找字符串<Unregis...

h123120的专栏 520

十五天Python系统学习教程第八天

通过第八天的学习,您将掌握: 1️⃣ Python原生Socket编程能力 2️⃣ 现代化HTTP客户端开发技巧 3️⃣ 安全的SSH连接管理方案 4️⃣ 网络诊断工具开发全流程

分享技术应用、实践场景等,评论区开放技术难题讨论,共同成长进步。 868

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7599

API基础:第八天

IO操作时的异常处理机制应用

m0_69707227的博客 207

YOLOv5入门实践(2)——手把手教你利用labelimg标注数据集

YOLOv5入门实践第2步,手把手教你使用labelimg标注数据集

路人贾的博客 1万+

未连接互联网的银河麒麟v10安装g++,各种报错,如何处理?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1805

API基础第八天

API基础第八天

dyr_080508的博客 305

信奥赛C++提高组csp-s之数论基础专题课:从同余到分数模运算1(知识地图:同余、裴蜀定理、扩展欧几里得、乘法逆元、分数模运算)

信奥赛C++提高组csp-s之数论基础专题课:从同余到分数模运算1(知识地图:同余、裴蜀定理、扩展欧几里得、乘法逆元、分数模运算)

王老师青少年编程 791

Java基础详细大纲_java入门基础介绍大纲!

发送你要查询的内容的编号给我!我将为你解答!例如发送:1.1第一天、java开发环境的搭建和第一个java程序的运行:1.1jdk的安装1.2第一个java程序——hello world1.3java的运行原理1.4集成开发环境(IDE)介绍第二天、变量、数据类型和运算符:2.1变量的声明和数据类型2.2基本数据类型的变量2.3Java的表达式和运算符2.4运算符的优先级别第三天、程序流程控制:3...

weixin_39914752的博客 144

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

零基础如何学习Java?Java学习路线图

课程内置大量的案例实战,初学者可以学练合一,对 Java 语言形成完整体系,并能得到自己的心得,足以轻松应对薪酬 30万+ 的 Java 基础面试。20 天学会 Java - 1. Java 课程简介​www.zhihu.com/education/video-course/1483149993460109313正在上传…JDK8-15新特性 → 编程强化 → 数据库强化 → 安全框架SpringSecurity → 报表技术 →。VelocityTools → 工作流Activiti7……

黑马程序员官方博客 498

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java架构师成长之路_java架构师成长之路

一:并发编程 + activemq + 实战案例并发编程基础篇第一天1、课程大纲简要介绍2、线程基础概念、线程安全概念、多个线程多个锁概念3、对象锁的同步和异步4、脏读概念、脏读业务场景、Synchronized概念、Synchronized代码块、Synchronized其他细节微云学习地址:文件分享微云学习地址:文件分享致学者:不论你在什么时候开始,重要的是开始之后请不要停止。第二天1、Vol...

weixin_42498487的博客 232

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

java架构师成长之路_java架构师学习之路

一:并发编程 + activemq + 实战案例并发编程基础篇第一天1、课程大纲简要介绍2、线程基础概念、线程安全概念、多个线程多个锁概念3、对象锁的同步和异步4、脏读概念、脏读业务场景、Synchronized概念、Synchronized代码块、Synchronized其他细节微云学习地址:https://share.weiyun.com/5mokPqU网盘学习地址:https://pan.b...

weixin_34233539的博客 344

最新javase,Java web,Java ee全套视频下载

关注微信公众号:IT老哥,回复Java全套教程,即可领取:Java基础、Java web、JavaEE全部的教程,包括spring boot等 java基础 00.编程入门 01.第一天:Java语言概述 02.第二天:Java基本语法(1) 03.第三天:Java基本语法(2) 04.第四天:Java基本语法(3) 05.第五天:Java基本语法与项目 06.第六天:Eclipse的使用与数组 07.第七天:数组 08.第八天:面向对象(1) 09.第九天:面向对象(2) 10..

hnjsjsac的博客 590

咕泡学院java课程怎么样_咕泡学院java高级架构

一:并发编程 + activemq + 实战案例并发编程基础篇第一天===【caier-20】1、课程大纲简要介绍2、线程基础概念、线程安全概念、多个线程多个锁概念3、对象锁的同步和异步4、脏读概念、脏读业务场景、Synchronized概念、Synchronized代码块、Synchronized其他细节致学者:不论你在什么时候开始,重要的是开始之后请不要停止。学习地址:https://pan....

weixin_39866646的博客 753

如何在短时间内高效的学习Java基础?

上述课程表是以每天学习6最少小时为基础设定的学习内容,如果各位小伙伴可以根据自己每天能学习、吸收的知识,进行排序。

黑马程序员官方博客 237

java date加一天_java入门基础介绍

发送你要查询的内容的编号给我!我将为你解答!例如发送:1.1第一天、java开发环境的搭建和第一个java程序的运行:1.1jdk的安装1.2第一个java程序——hello world1.3java的运行原理1.4集成开发环境(IDE)介绍第二天、变量、数据类型和运算符:2.1变量的声明和数据类型2.2基本数据类型的变量2.3Java的表达式和运算符2.4运算符的优先级别第三天、程序流程控制:3...

weixin_39965514的博客 201

30天学会Java学习大纲

这篇Java学习路线规划为30天系统课程,从基础到进阶全面覆盖Java核心知识。课程分为环境配置、基础语法、面向对象、集合框架、IO流、多线程、网络编程、反射、JDBC、设计模式等模块,最后通过项目实战巩固所学。每天重点学习一个主题,循序渐进,如第1-3天学习基础语法,6-8天掌握面向对象,12-13天学习集合框架,28-29天了解设计模式等。课程还包含Java8新特性和实用工具(Maven/JUnit/日志框架)的学习,适合零基础系统入门Java开发。

smileKH的博客 1150

JAVA互联网架构师课程大纲

并发编程 + activemq + 实战案例并发编程基础篇 第一天 1、课程大纲简要介绍2、线程基础概念、线程安全概念、多个线程多个锁概念3、对象锁的同步和异步4、脏读概念、脏读业务场景5、Synchronized概念、Synchronized代码块、Synchronized其他细节 第二天 1、Volatile关键字概念、线程优化执行流程、内部原理讲解2、Volatile关键字的非原子性3、并发...

qq_28240551的博客 781

java详细教程,Java详细基础教程

资源介绍【课程目录】第一天01 基本常识02 Java的跨平台性03 安装04 环境变量配置05 环境变量配置技巧06 环境变量临时配置方式07 Hello.World08 classpath配置09 Hello.World的组成部分10 注释第二天01 标识符02 常量03 进制的特点04 进制转换(十进制和二进制05 进制转换(八进制和十六进制06 进制转换(负数二进制07 变量08 类型转换...

weixin_39552768的博客 198

java基础目录

干了两年NET 开发,最近部门决定使用SSM架构,决定重新从头开始学习JAVA ,从网上找了毕向东的java基础视频教程,记录下笔记,方便以后查阅。   第一天:JAVA 开发环境搭建。 第二天:标示符、关键字、if 语句 第三天:循环、函数 第四天:数组 第五天:面向对象(上) 第六天:面向对象(下) 第七天:继承、抽象类、接口 第八天:多态 第九天:内部类、静态类、匿名类

Ryan的专栏 525

13天搞定java_[Java基础] 魔乐科技教你13天搞定JAVA系列高端教程 视频教程 教学视频...

资源介绍课程目录: 《魔乐科技教你13天搞定JAVA》第八天-01异常的捕获及处理.rar 58.04 MB《魔乐科技教你13天搞定JAVA》第八天-02包及访问控制权限.rar 41.92 MB《魔乐科技教你13天搞定JAVA》第八天-03Eclipse开发工具01.rar 57.80 MB《魔乐科技...

weixin_30134531的博客 200
上一篇: 第七天Java基础(File、递归、IO流)
下一篇: 第九天Java基础(常用的函数接口)
RestartJava
博客等级 码龄7年 1粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值