socket

kalilinux学习笔记即问题处理

谁都会走 提交于 2020-03-10 17:20:32
一:安装kali sudo 加命令以root权限运行 reboot重启 shutdown -h now 关机 1.更改用户 第一步:sudo passwd root 第二步:输入原密码(kali)确认 第三步:输入新的密码,再输入确认最后reboot重启就是了, 登录就用root+密码 账户1:kali kali(普通账户) 账户2:root admin (root账户) 2.换源和更新 1.vim/etc/apt/sources.list进入vim编辑器添加源 2.若保存出现权限问题使用wq!保存 3.换源之后输入:apt-get update && apt-get upgrade && apt-get clean更新源和更新软件 3.汉化 1.终端输入apt-get install xfonts-intl-chinese ttf-wqy-microhei 安装中文字体(换源后才可以下载字体) 2.更换编码格式dpkg-reconfigure locales(root用户)进入图形化界面之后,(空格是选择,Tab是切换,带*是选中),选中zh_CN.UTF-8,确定后,将zh_CN.UTF-8选为默认。 3.终端输入:reboot重启 系统,到登录界面,右上角语言列表注意是否为zh_CN.utf8,点开列表,确定选中的为中文-中国(若出现部分更改,重启,重启可以解决很多问题) 4

IO Unix IO BIO AIO NIO

走远了吗. 提交于 2020-03-10 12:57:08
IO: io流分为 字符 和 字节 两种,其实比较好认,一般字节的都是Stream结尾,字符的是Reader或Writer结尾,字符和字节转换用InputStreamReader 字符的用于读取纯文本格式,一次读一个字符,比如utf-8三个字节 字节用来读取二进制文件等,那种人看不懂的,包括图片 视频等 再者就是io流使用了典型的装饰者模式,等等我去偷张图,侵删。 可以清晰的看出FilterInputStream就是装饰者,再不改变原有类的情况下,下面三个Data/Buffered/PushbackInputStream附加实现了不同的功能,比如BufferedInputStream实现了缓冲的功能,如果想深入了解,个人建议去看 https://www.jianshu.com/p/4a530a3c70af 。 具体使用来个例子吧清晰一点: 复制文件 FileInputStream in = new FileInputStream(src); FileOutputStream out = new FileOutputStream(dist); byte [] buffer = new byte [ 1024 ]; // read() 最多读取 buffer.length 个字节 返回的是实际读取的个数 返回 -1 的时候表示读到 eof,即文件尾 while (in.read

Django websocket 长连接使用

半世苍凉 提交于 2020-03-10 11:15:24
下载 pip install dwebsocket WebSocket是一种在单个TCP连接上进行全双工通信的协议 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输 现在,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。 而比较新的技术去做轮询的效果是Comet。这种技术虽然可以双向通信,但依然需要反复发出请求。而且在Comet中,普遍采用的长链接,也会消耗服务器资源。 在这种情况下,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯 1. http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要有三次握手才能发送信息。   http链接分为短链接,长链接,短链接是每次请求都要三次握手才能发送自己的信息。即每一个request对应一个response

Socket的长连接和短连接

≡放荡痞女 提交于 2020-03-10 10:06:51
讨论Socket必讨论长连接和短连接 一、长连接和短连接的概念   1、长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接;后者是每次请求,都新建一个Socket,处理完一个请求就直接关闭掉Socket。所以,其实区分长短连接就是:整个客户和服务端的通讯过程是利用一个Socket还是多个Socket进行的。   可能你会想:这还不简单,长连接不就是不关Socket嘛,短连接不就是每次都关Socket每次都new Socket嘛。然而事实其实并没有那么简单的,请继续看下面的整理   2、关闭流而保持Socket正常?     在网上百度了一下,发现很多人都是以关闭流还是关闭Socket来区分长连接和短连接的,其实,个人感觉这种区分方法并没有什么意义:因为这里面有一个事实是,流关闭之后,便不能进行消息的发送(对应关闭输出流)或者接受(对应关闭输入流),因为其实关闭了对应的流,对应连接也就关闭了(这里所说的连接是发送消息的通道!),所以,流关闭而保持Socket开启,是没有达到长连接的效果,贴上测试代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 /

Socket的长连接和短连接

送分小仙女□ 提交于 2020-03-10 10:06:09
Socket的长连接和短连接 讨论Socket必讨论长连接和短连接 一、长连接和短连接的概念   1、长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接;后者是每次请求,都新建一个Socket,处理完一个请求就直接关闭掉Socket。所以,其实区分长短连接就是:整个客户和服务端的通讯过程是利用一个Socket还是多个Socket进行的。   可能你会想:这还不简单,长连接不就是不关Socket嘛,短连接不就是每次都关Socket每次都new Socket嘛。然而事实其实并没有那么简单的,请继续看下面的整理   2、关闭流而保持Socket正常?     在网上百度了一下,发现很多人都是以关闭流还是关闭Socket来区分长连接和短连接的,其实,个人感觉这种区分方法并没有什么意义:因为这里面有一个事实是,流关闭之后,便不能进行消息的发送(对应关闭输出流)或者接受(对应关闭输入流),因为其实关闭了对应的流,对应连接也就关闭了(这里所说的连接是发送消息的通道!),所以,流关闭而保持Socket开启,是没有达到长连接的效果,贴上测试代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Socket的长连接和短连接

旧城冷巷雨未停 提交于 2020-03-10 10:05:32
讨论Socket必讨论长连接和短连接 一、长连接和短连接的概念   1、长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接;后者是每次请求,都新 建一个Socket,处理完一个请求就直接关闭掉Socket。所以,其实区分长短连接就是:整个客户和服务端的通讯过程是利用一个Socket还是多个 Socket进行的。   可能你会想:这还不简单,长连接不就是不关Socket嘛,短连接不就是每次都关Socket每次都new Socket嘛。然而事实其实并没有那么简单的,请继续看下面的整理   2、关闭流而保持Socket正常?     在网上百度了一下,发现很多人都是以关闭流还是关闭Socket来区分长连接和短连接的,其实,个人感觉这种区分方法并没有什么意义:因为 这里面有一个事实是,流关闭之后,便不能进行消息的发送(对应关闭输出流)或者接受(对应关闭输入流),因为其实关闭了对应的流,对应连接也就关闭了(这 里所说的连接是发送消息的通道!),所以,流关闭而保持Socket开启,是没有达到长连接的效果,贴上测试代码: //发送核心方法 public String send(String send) throws IOException { String rtn = null; BufferedWriter writer = null;

TCP网络编程

☆樱花仙子☆ 提交于 2020-03-10 06:24:29
TCP客户端模型: import socket # 创建tcp套接字对象 sockfd = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 绑定地址 ip: "localhost" "127.0.0.1" "0.0.0.0" "192.168.31.196" sockfd.bind(("127.0.0.1",8888)) # 设置监听套接字 sockfd.listen(3) # 处理客户端链接 while True: print("Waiting for connect..") connfd,addr = sockfd.accept() print("Connect from",addr) # 收发消息 (网络传输数据用字节串) while True: data = connfd.recv(1024) if not data: break # 收到b"##"则退出 # if data == b"##": # break print("Recv:",data.decode()) n = connfd.send(b'Thanks') print("Send %d bytes"%n) connfd.close() # 关闭套接字 sockfd.close() TCP服务端模型: from socket import * # 服务器地址

几个重要的TCP/IP选项解析(Java Socket)

帅比萌擦擦* 提交于 2020-03-09 21:43:40
Socket选择可以指定Socket类发送和接受数据的方式。在JDK1.4中共有8个Socket选择可以设置。这8个选项都定义在 java.net .SocketOptions接口中。定义如下: public final static int TCP_NODELAY = 0x0001;public final static int SO_REUSEADDR = 0x04;public final static int SO_LINGER = 0x0080;public final static int SO_TIMEOUT = 0x1006;public final static int SO_SNDBUF = 0x1001;public final static int SO_RCVBUF = 0x1002;public final static int SO_KEEPALIVE = 0x0008;public final static int SO_OOBINLINE = 0x1003; 有趣的是,这8个选项除了第一个没在SO前缀外,其他7个选项都以SO作为前缀。其实这个SO就是Socket Option的缩写;因此,在Java中约定所有以SO为前缀的常量都表示Socket选项;当然,也有例外,如TCP_NODELAY.在Socket

Windows 下socket编程示例

巧了我就是萌 提交于 2020-03-09 20:53:39
自己参考网上教程写的,亲测可用.备份一下源代码,将来就不用重写了. 注:在code::blocks下编译时,要设置链接库.具体方法为: 菜单栏Settings->Compiler and debugger settings->Linker Settings->Add libws2_32.a WinServ.c --- /*This is a program to create a WinServer listening to 127.0.0.1:25340*/ #include <winsock2.h> #include <stdio.h> #include <windows.h> #pragma comment(lib,"ws2_32.lib") int main(int argc, char* argv[]){ WSADATA wsa; short port=25340; char ServerIP[11]="127.0.0.1"; //初始化 socket if(WSAStartup(MAKEWORD(2,2),&wsa)!=0){ printf("Socket Init failed!\n"); exit(-1); } //Create socket SOCKET serverSocket; if((serverSocket=socket(AF_INET,SOCK

【python】socket编程常量错误问题-1 &apos;AF_INET&apos;

隐身守侯 提交于 2020-03-09 20:02:32
# -*- coding: utf-8 -*- import socket print "Creating socket" s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print "Done!" print "Connecting to remote host..." s.connect(("www.baidu.com", 80)) print "Done" 在python使用import socket后使用socket.AF_INET常量的时候发生在模块中找不到这个常量,很奇怪,在网上查了一下,在python import模块的时候会根据文件的名字进行导入,我的python脚本文件名字恰巧是socket.py,这才导致了导入的socket是错误的,尽量不要让自己的python脚本和模块同名,并且要注意同文件夹下的其他文件名和模块名是否冲突 本文出自 “Sanr” 博客,请务必保留此出处 以上为我百度出来的结果,然后我重新新建了一个文件来运行上面那段代码,还是错的,原因是什么呢? 没错。。。。我没有把之前那个删掉,删掉以后就正常了。。。 以后记得不要用import 后面的模块名来命名文档。。。 来源: oschina 链接: https://my.oschina.net/u/2447940/blog/499124