python之TCP客户端和服务器端编写
来源:互联网 发布:linux 更新软件 编辑:程序博客网 时间:2024/05/17 23:46
从今天开始学习《python黑帽子:黑客与渗透测试编程之道》,一定要认真,好好的学。
安装kali虚拟机
安装虚拟机没有什么好写的,需要注意的一点是要分配足够的硬盘空间,一开始安装的时候,只分配了8G的硬盘,结果安装失败,后来改为30G的硬盘空间,就安装成功了。
安装python软件管理工具
安装easy_install和pip两个python的软件管理工具,他们允许直接安装python的函数库,而不是手动下载、解压和安装。通过下面命令同时安装这两个工具:
root@kali:~#: apt-get install python-setuptools python-pip
使用方法,安装github3.py模块:
root@kali:~#: pip install github3.py
安装IDE WingIDE
从wingide下载WingIDE,下载.deb文件的安装包,终端运行:
root@kali:~/Downloads:dpkg -i wingide5_5.0.9-1_i386.deb
安装成功
socket网络编程
TCP客户端
import sockettarget_host = '127.0.0.1'target_port = 12345#建立一个socket对象,AF_INET说明将使用标准的IPv4地址或主机名,SOCK_STREAM说明是一个TCP客户端client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#连接到服务器client.connect((target_ip, target_port))#发送数据client.send("i am TCP client")#接收数据response = client.recv(4096)print response
TCP服务器端
import socketimport threadingbind_ip = "127.0.0.1"bind_port = 12345server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#将套接字与指定的ip和端口相连server.bind((bind_ip, bind_port))#启动监听,并将最大连接数设为5server.listen(5)print "[*] listening on %s:%d" % (bind_ip, bind_port)#定义函数,回发信息给客户端def handle_client(client_socket): #打印客户端发送的消息 request = client_socket.recv(1024) print "[*] Received: %s" % request #返回一个数据包,内容为ACK! client_socket.send('ACK!') client_socket.close()#服务端进入主循环,等待连接while True: #当有连接时,将接收到的套接字存到client中,远程连接细节保存到addr中 client, addr = server.accept() print "[*] Accepted connection from: %s:%d" % (addr[0], addr[1]) #创建新线程,回发信息给客户端 client_handler = threading.Thread(target=handle_client, args=(client,)) client_handler.start()
注:要保证TCP客户端连接到的ip和端口,与TCP服务器端监听的ip和端口相同
TCP客户端和TCP服务器端建立完成之后,运行服务器端程序,进入等待连接阶段……
运行客户端程序,得到如下结果:
TCP服务器端:
TCP客户端
0 0
- python之TCP客户端和服务器端编写
- Python TCP客户端和服务器端通信
- [python] TCP客户端/服务器端
- TCP 客户端和服务器端
- python 使用socket模拟tcp客户端和tcp服务器端
- Python tcp编程,TCP服务端和TCP客户端代码编写
- 关于Python基于TCP的服务器端和客户端编程
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- TCP服务器端和客户端程序设计
- 简单TCP服务器端和客户端(源代码)
- 简单TCP服务器端和客户端(源代码)
- 网络编程Tcp的客户端和服务器端
- Node.js 关于HTML文档中的req.url理解
- 猴子分桃解题原理
- Nebula_Level00
- 使用spring的JdbcTemplate进行查询的三种回调方式的比较
- [jvm][面试] 并发收集器 CMS(Concurrent Mark-Sweep)
- python之TCP客户端和服务器端编写
- Codeforces Round #306 (Div. 2) B. Preparing Olympiad dfs
- [leetcode]ZigZag Conversion
- 归并排序,插入排序,快速排序,冒泡排序,选择排序的思想
- [数据库]存储过程
- Eclipse下的java工程目录问题和Classpath路径问题理解
- 集合3
- PHP配置Memcached
- 设计模式学习--单例模式