1、 SOCK_STREAM 指tcp协议
AF_INET 指基于网络通信的套接字
SD数据爆协议,指的就是UDP
fd文件描述符
family地址家族
laddr服务端自己地址 raddr客户端地址
2、在tcp协议下必须先启动服务端
3、 流程:操作系统--> 硬件 -->网卡--> 交换机
4、 只有一个服务端,让所有客户端都能被服务,是并发能力 (建链接,通信循环)
并发:利用 socketserver模块
5、 基于UDP协议的套接字通讯
服务端不需要listen----监听连接请求
6、udp是无链接的,先启动哪一端都不会报错
TCP必须先启动服务端
7、AF_UNIX 基于文件的套接字
8、 注意注意注意:
res=subprocess.Popen(cmd.decode('utf-8'), shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
的结果的编码是以当前所在的系统为准的,如果是windows,那么res.stdout.read()读出的就是GBK编码的,在接收端需要用GBK解码
且只能从管道里读一次结果
注意:命令ls -l ; lllllll ; pwd 的结果是既有正确stdout结果,又有错误stderr结果
9、 命令:netstat -an
netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
套接口类型:
-t :TCP
-u :UDP
-raw :RAW类型
--unix :UNIX域类型
--ax25 :AX25类型
--ipx :ipx类型
--netrom :netrom类型
状态说明:
LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态
10、命令: get +文件路径
命令:dir
一、ftp的get命令和mget命令有何不同? get一次只下载一个文件;mget一次可以下载多个文件,而且支持通配符,需要注意的是在mget的时侯,需要对每一个文件都选择y/n,如果想不交互的下载全部的文件,可以先用prompt命令关掉交互方式(关闭:prompt off;打开:prompt on)。 二、FTP使用什么命令来定位服务器与本地硬盘的路径? ftp中用lcd切换本地路径,用cd切换远程服务器的路径。常用到的命令如下: cd目录名(进入服务器目录) lcd目录名(进入本机目录) cd (退到服务器根目录) lcd (退到本机根目录) cd ..(退回到上一级目录) lcd ..(退回到上一级目录) 三、!命令有何作用? 执行本地shell命令,如:!dir(显示本机当亲目录内容),如果不加!如:dir(显示服务器当前目录内容) 四、ftp命令支持“含有空格”的文件夹/文件名吗? 支持,只要在引用时加上双引号“”即可! 五、下面是命令行方式使用FTP的实战练习 假设有一ftp服务器:ftp.test.com,用户名:username,密码:user1234。在本地电脑D:盘创建一个文件夹“qint”。将要上传的文件复制到D:qint里。通过FTP命令将文件从本地上传,从服务器下载的步骤如下: 1、“开始”→“运行”→输入“FTP” 2、open ftp.test.com 注意:这一步可以与第一步合并,在“运行”里直接输入:ftp ftp.test.com。如果你的FTP服务器不是用的21默认端口,假如端口是2121,那么此步的命令应在后面空格加2121,即“open ftp.test.com 3、username 注意:提示你输入用户名 4、user1234 注意:提示你输入密码,密码不回显,打完密码后回车即可。如果你的密码输入错误,将不会提示你重新输入,这时你要键入“user”命令,将会出现第三步,你可以重新输入用户名和密码。 5、dir 注意:你成功登陆后就可以用dir查看命令查看FTP服务器中的文件及目录,用ls命令只可以查看文件。 6、mkdir qint 注意:在FTP服务器上根目录下建立qint目录 7、cd qint 注意:进入目录qint,用“cd 你的目录名”可以进入当前目录的下一级目录,这跟DOS一样。 8、bin 注意:采用二进制传输。如果你要上传下载,这一步很重要,不先执行这个命令,上传下载会很慢。大多数系统(包括UNIX系统)只有两种模式:文本模式和二进制模式。文本传输器使用ASCII字符,并由回车键和换行符分开,而二进制不用转换或格式化就可传字符,二进制模式比文本模式更快,并且可以传输所有ASCII值,所以系统管理员一般将FTP设置成二进制模式。一般来说,我们最好都用binary方式,这样可以保证不出错。 9、lcd d:qint 注意:定位本地默认文件夹,在前面已事先在D:盘创建 10、!dir 注意:查看本地文件夹中的文件及目录 11、put i001.jpg 注意:将当前目录(d:qint)中的文件i001.jpg上传到FTP服务器默认目录。可以用“mput *.*”将所有文件上传到FTP服务器上。 12、get d123.jpg 注意:将FTP服务器默认目录中的文件d123.jpg下载到当前目录下(d:qint)。可以用“mget *.*”将所有文件下载到d:qint 13、delete *.* 注意:删除服务器对应目录qint中的所有文件。 14、cd .. 注意:返回至上一级目录,即根目录。返回上一级目录用“cd ..”要注意,中间有空格。返回根目录用“cd ”。 15、mrdir qint 注意:删除目录qint。删除目录,在此目录下不能有文件及目录,不然将无法删除。 16、bye 注意:退出FTP服务器。 上传下载时特别要注意服务器及本地电脑的当前目录,文件是从哪里到哪里的问题。查看FTP服务器的当前目录命令为pwd,可以用cd命令定位服务器的目录。可以用lcd命令定位本地电脑的目录。 以上实例应用到了采用FTP命令行方式上传下载的最常用命令,你还可以用命令“?”查看更多的命令。
11、socket调用的简单用法:from socket import *
12、下载上传数据 完整版认证,校验都在此链接https://zhuanlan.zhihu.com/p/110296719