bytes

sftp使用

给你一囗甜甜゛ 提交于 2020-02-07 21:07:42
SFTP的基本命令 sftp是Secure File Transport Protocol的缩写,安全文件传输协议。可以为传输文件提供一种安全的网络加密方法。 sftp本身没有单独的守护进程,使用sshd守护进程。 SecureCRT 远程连接至服务器,可以使用ALT+p打开sftp的会话窗口。 常用的命令 1:pwd和lpwd pwd:sftp服务器所在机器[rhel7]默认的当前目录路径 lpwd:windowd OS的本地默认目录路径 # sftp> pwd /root sftp> lpwd D:/SecureCRT_x86_7.1.1.264_en/App/SecureCRT sftp> 2:ls和lls ls:显示sftp默认路径的文件列表 lls:显示windows OS的本地文件列表 3:put 上传到sftp服务器 #put:win--->linux put D:/SecureCRT_x86_7.1.1.264_en/App/SecureCRT/文件名 sftp> put D:\test.txt Uploading test.txt to /root/test.txt 100% 13 bytes 13 bytes/s 00:00:00 D:/test.txt: 13 bytes transferred in 0 seconds (13 bytes/s) 4:get

golang []byte转string

点点圈 提交于 2020-02-07 10:11:21
golang []byte转string golang中,字符切片[]byte转换成string最简单的方式是 package main import ( "fmt" _ "unsafe" ) func main() { bytes := []byte("I am byte array !") str := string(bytes) bytes[0] = 'i'//注意这一行,bytes在这里修改了数据,但是str打印出来的依然没变化, fmt.Println(str) }   打印信息:I am byte array !   上面的代码bytes在这里修改了数据,但是str打印出来的依然没变化,是因为[]byte的内存被拷贝了。接着看下面的代码 package main import ( "fmt" "unsafe" ) func main() { bytes := []byte("I am byte array !") str := (*string)(unsafe.Pointer(&bytes)) bytes[0] = 'i' fmt.Println(*str) }   打印信息:i am byte array !    现在打印出来的信息已经是改变过的了,现在可以看出来str和bytes共用一片内存。   这样做的意义在于,在网络通信中,大多数的接受方式都是[]byte

java-io流

血红的双手。 提交于 2020-02-07 07:54:06
架构图: 架构图2: 代码1: package com.wkcto.chapter06.fileinputstream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; /** * 异常处理 * */ public class Test05 { public static void main(String[] args) { // readData(); //以字节为单位读取文件内容, 异常处理, 手动关闭流 readData2(); //以字节数组为单位读取文件内容, 异常处理, 自动 关闭流, 从JDK7开始 } private static void readData2() { try ( FileInputStream fis = new FileInputStream("d:/abc.txt"); ) { byte [] bytes = new byte[8]; //字符数组一般情况下是1024的偶数倍 int len = fis.read(bytes); while( len != -1){ System.out.print( new String(bytes, 0 ,len)); len = fis.read(bytes)

Go内存管理

走远了吗. 提交于 2020-02-07 06:59:31
1.前言 编写过C语言程序的肯定知道通过malloc()方法动态申请内存,其中内存分配器使用的是glibc提供的ptmalloc2。 除了glibc,业界比较出名的内存分配器有Google的tcmalloc和Facebook的jemalloc。 二者在避免内存碎片和性能上均比glic有比较大的优势,在多线程环境中效果更明显。 Golang中也实现了内存分配器,原理与tcmalloc类似,简单的说就是维护一块大的全局内存,每个线程(Golang中为P)维护一块小的私有内存,私有内存不足再从全局申请。 另外,内存分配与GC(垃圾回收)关系密切,所以了解GC前有必要了解内存分配的原理。 2.内存分配概览 3.基础概念 3.1预分配内存 为了方便自主管理内存,做法便是先向系统申请一块内存,然后将内存切割成小块,通过一定的内存分配算法管理内存。以64位系统为例,Golang程序启动时会向系统申请的内存,预申请的内存划 分为spans、bitmap、arena三部分。其中arena即为所谓的堆区,应用中需要的内存从这里分配。其中spans和bitmap是为了管理arena区而存在的。 arena的大小为512G,为了方便管理把arena区域划分成一个个的page,每个page为8KB,一共有512GB/8KB个page; spans区域存放span的指针,每个指针对应一个page

nginx站点无法访问

夙愿已清 提交于 2020-02-06 17:52:09
许久不用的nginx站点无法访问 有一个阿里云站点 map.sulianlian.com 好久不用。今天用到要测个代理。访问的时候竟然提示站点无法访问 ,第一想法是nginx配置问题,上去检查了一通,配置没有啥问题,重启后仍然提示无法访问…奇怪,访问日志也没有记录…奇怪. 用tcpdump监控一下 tcpdump -i eth0 tcp 'dst port 80 and dst host (172.17.51.219 or 39.106.58.35)' -n -S (172.17.51.219 or 39.106.58.35) 这俩IP一个是内网IP 一个公网IP ,ecs的数据应该都是从公网代理到内网的 所以这里 dst host 用 内网IP + 公网IP 防止产生遗漏 然后我发现没有任何请求过来… 这… 然后我去ping一下 [guangsu@ bp]$>ping map.sulianlian.com PING map.sulianlian.com (39.104.124.152): 56 data bytes 64 bytes from 39.104.124.152: icmp_seq=0 ttl=51 time=26.154 ms 64 bytes from 39.104.124.152: icmp_seq=1 ttl=51 time=24.610 ms 64 bytes

磁盘相关

房东的猫 提交于 2020-02-06 02:25:46
一块新的数据盘,df -h没有挂载,要想使用数据,最简单的方法(格式化----挂载) fdisk -l mkfs.xfs /dev/vdb mkdir -p /data mount /dev/vdb /data/ df -h 后期加的数据盘要使用 [root@ecs-syq-20200204 ~]# fdisk -l Disk /dev/vdc: 100 GiB, 107374182400 bytes, 209715200 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes 如果ecs没有挂载(添加到实例),命令行fdisk -l也找不到 格式化—挂载(临时挂,永久挂写配置文件) [root@ecs-syq-20200204 ~]# mkfs.xfs /dev/vdc [root@ecs-syq-20200204 ~]# mount /dev/vdc /mnt/ [root@ecs-syq-20200204 ~]# df -h /dev/vdc 100G 747M 100G 1% /mnt 来源: CSDN 作者: 健士 链接:

dd命令测试linux磁盘读写速度

别等时光非礼了梦想. 提交于 2020-02-05 06:48:45
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 dd 命令通用语法格式如下: dd if=path/to/input_file of=/path/to/output_file bs=block_size count=number_of_blocks 命令简介 主要选项(指定数字的地方若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m): if=file                 输入文件名,缺省为标准输入。 of=file                 输出文件名,缺省为标准输出。 ibs=bytes                一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。 obs=bytes                一次写 bytes 个字节(即一个块大小为 bytes 个字节)。 bs=bytes                 同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。 cbs=bytes                一次转换 bytes 个字节,即转换缓冲区大小。 skip=blocks               从输入文件开头跳过 blocks 个块后再开始复制。 seek

python3 bytes().py

江枫思渺然 提交于 2020-02-04 11:05:29
""" python3 bytes().py 参考:https://blog.csdn.net/weixin_40283816/article/details/83591582 知识点: 1.str to bytes str.encode() -> bytes bytes(str, encoding="utf8") -> bytes 2. bytes -> str str(bytes, encoding="utf8") -> str bytes.decode() -> str """ # 1. print("1.") b = b"example" # bytes object print('b:', b) # b: b'example' print(type(b)) # <class 'bytes'> # 2. print("2.") s = "example" # str object sb = bytes(s, encoding="utf8") # str to bytes print("sb:", sb) # sb: b'example' print(type(sb)) # <class 'bytes'> sb = str.encode(s) # str to bytes print("sb:", sb) # sb: b'example' print(type(sb)) #

struct内存对齐

房东的猫 提交于 2020-02-03 08:38:28
内存对齐其实是为了在程序运行的时候更快的查找内存而做的一种编译器优化。 我们先看这样一个例子: 1 #include <iostream> 2 using namespace std; 3 4 struct vpoet 5 { 6 int a; //4 bytes 7 char b; //1 bytes 8 double c; // 8 bytes 9 char *d; //4 bytes 10 int e; //4 bytes 11 }; 12 13 int main() 14 { 15 cout<<"sizeof(vpoet)="<<sizeof(vpoet)<<endl; 16 return 0; 17 } 运行结果: 这个结构体大小为24个字节,但是我们仔细算一算其字节数 发现其实际上只有4+1+8+4+4=21个字节,那是如何算 出来24个字节的 呢,其实在默认情况下编译器是按照结构体 中所占字节最大的成员来进行内存对齐的。比如在结构体 vpoet中最大的是double double 占8个字节,那么 编译器 默认按8个字节的方式对齐那么编译器将按照大于实际字节数 的double最小整数倍来进行内存分配 。因而这里 实际是在结构体 的成员b后面填充了三个字节用于对齐。 那么问题来了,对齐方式可以改吗? 可以我们可以在文件头加上 1 #pragma pack(n)

TCP模擬BS服務器

混江龙づ霸主 提交于 2020-02-02 09:16:04
package IOStream ; import java . io . * ; import java . net . ServerSocket ; import java . net . Socket ; /* 创建BS版本TCP服务器 */ public class BSTCPTest { public static void main ( String [ ] args ) throws IOException { //创建一个服务器ServerSocket,和系统要指定的端口号 ServerSocket server = new ServerSocket ( 8080 ) ; /* 浏览器解析服务器回写的html页面,页面中如果有图片,那么浏览器就会单独的开启一个线程,读取服务器的图片 我们就的让服务器一直处于监听状态,客户端请求一次,服务器就回写一次 */ while ( true ) { //使用accept方法获取到请求的客户端对象(浏览器) Socket socket = server . accept ( ) ; new Thread ( new Runnable ( ) { @Override public void run ( ) { try { //使用Socket对象中的方法getInputStream,获取到网络字节输入流InputStream对象