安全渗透测试的尝试模块
Socket 模块
Socket 模块的主要目的是帮助在网络上的两个程序之间建立信息通道
在Python中提供了两个基本的Socket模块
1、服务端Socket
2、客户端Socket
实例化Socket 类
在使用Socket 进行编程的时候,需要 实例化一个Socket类,需要三个参数:
1、地址族
2、流
3、使用的协议
服务端和客户端
使用Socket 建立服务端的思路主要是首先实例化一个Socket 类,然后开始循环监听,一直可以接受来自客户端的连接
成功建立连接之后, 接收客户端发来的数据并在想 客户端 发送数据,传输完毕之后,关闭这次连接
Socket常用的函数-服务端函数
bind()∶这个函数由服务端Socket调用,会将之前创建Socket与指定的IP地址和端口进行绑定。如果之前使用了AF_INET初始化Socket,那么这里可以使用元组(host,port)的形式表示地址。
listen()∶这个函数用于在使用TCP的服务端 开启 监听模式。可以使用一个参数来指定可以挂起的最大连接数量。
这个参数的值最小为1,一般设置为5。例如,要在服务端开启一个监听,可以使用如下语句。
accept()∶这个函数用于在使用TCP的 服务端 接收连接,一般是阻塞态。接受TCP连接并返回(conn,address)
客户端的函数
connet( ) :这个函数用于在使用TCP 的客户端去连接服务端时使用,使用的参数是一个元组,形式为 (hostname , port )
send():
用于在使用 TCP 时发送数据,完整的形式为 send(string [,flag]),
利用这个函数可以将string代表的数据发送到已经连接的Socket,返回值是发送字节的数量。但是可能未将指定的内容全部发送。
sendal1():
与send()相类似,也是用于在使用TCP时发送数据,完整的形式为 sendal1(string [,f1ag])。与send()的区别是完整发送TCP数据。将string中的数据发送到连接的套接字,但在返回之前会尝试发送所有数据。成功返回None,失败则抛出异常。
recv():
这个函数用于在使用TCP时接收数据,完整的形式为recv(bufsize[,flag])