python搭建客户端和服务端

  • 前言
  • 一、客户端搭建
    • 搭建过程整理
    • TCP客户端
      • 2.x版本
      • 3.x版本
    • UPD客户端
      • 2.x版本
      • 3.x版本
  • 二、TCP服务端搭建
    • 搭建过程整理
    • 2.x版本
    • 3.x版本
  • 三、尝试连接
    • 开启服务器
    • 开启客户端发送数据

前言

这里我们讲使用socket模块快速创建TCP,UDP服务器和客户端
所在环境为:kali
编写环境为kali中的:wing personal8

一、客户端搭建

搭建过程整理

  1. 创建套接词
  2. 连接远程的主机(服务端)
  3. 发送数据,接受数据
  4. 关闭连接

TCP客户端

我们在渗透的过程中,在企业内网中几乎没有网络工具或者编译器环境下,我们为了完成一些数据传输,发送垃圾数据,进行模糊测试就需要手动打击爱你一个tcp客户端以达到目标

2.x版本

import socket
target_host = "0.0.0.0"
target_port=999#建立一个socket连接
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#连接服务端
client.connect((target_host,target_port))#发送数据
client.send("GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n")#接受一些数据
response = client.recv(4096)print (reponses)

3.x版本

import socket
target_host = "www.baidu.com"
target_port = 80
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect((target_host,target_port))
aaa = "GET / HTTP/1.1\r\nHost:baidu.com\r\n\r\n"
client.send(str.encode(aaa))  #send在python3中 接收的是bytes需要做一个转换
response = client.recv(4096)
print (bytes.decode(response))

UPD客户端

2.x版本

import sockettarget_host="127.0.0.1"
target_port=80client=socket.socket(socket.AF_INEF,socket.SOCK_DGRAM)cliemt.sendto("AAABBBCCC",(target_host,target_port))data,addr=client.recvfrom(4096)print (data)

3.x版本

import socket
target_host = '127.0.0.1'
terget_post =  80
client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
client.sendto(str.encode('sdsdsdsdsdsd'),(target_host,terget_post)) #同样这里做一个转换
data, addr = client.recvfrom(4096)
print (data)

二、TCP服务端搭建

搭建过程整理

  1. 同客户端创建套接词
  2. 设定绑定的端口和IP
  3. 设置最大连接数量
  4. 接受数据或发送和数据
  5. 关闭连接

2.x版本

import socket
import threadingbind_ip= "0.0.0.0"
bind_port=999server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)server.bind((bind_ip,bind_port))server.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)#返还一个数据包client_socket.send("ACK!")client_socket.close()while True:client,addr = server.accept()print ("[*] Accept connection from: %s:%d" % (addr[0],addr[1]))#挂起客户端线程处理传入的数据client_handler = threading.Thread(target=handle_client,args=(client,))client_handler.start()

3.x版本

import socket
import threading
bind_ip = '0.0.0.0'
bind_port = 999
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip,bind_port))
server.listen(5)    #最大连接数
print ("[*] listen on %s:%d" % (bind_ip,bind_port))
def handle_client(client_socket):  request = client_socket.recv(1024)     #接受类型并打印client_socket.send(str.encode('ACK!'))#这里也要进行转码client_socket.close()
while True: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()

三、尝试连接

开启服务器

进入文件存储目录下

python xxx.py

开启客户端发送数据

进入文件存储目录

python xxx.py

python搭建客户端和服务端相关推荐

  1. python 安卓应用层_使用Python开发客户端和服务端程序 理解应用层协议和表示层...

    不少学习计算机网的学生,对于服务器和客户机,以及应用层协议 表示层理解的不完全,在这里我使用Python编写了用于传输学生信息的程序.服务端使用TCP的8898端口侦听客户端的请求.客户端向服务端发送 ...

  2. python实现客户端和服务端的文件夹传输

    初学python,使用socket可以传输文件,想传输整个文件夹里的所有的内容,这样两台电脑文件的互传就十分的方便 传输文件夹思路有两个,一个是遍历文件夹下所有的文件,分别发送直到所有的文件传输完成. ...

  3. Python网络编程——客户端与服务端简单信息发送与接受

    python网络编程-服务端与客户端简单信息发送与接受 思考一下我们进行网络中信息通信都需要什么或者说需要具备什么条件才能进行网络通信? 首先我们需要知道给谁发送,也就是目标机是谁,然后我们需要知道对 ...

  4. gRPC中Java和node进行异构通信-互为客户端和服务端

    场景 gPRC简介以及Java中使用gPRC实现客户端与服务端通信(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/ ...

  5. 验证客户端和服务端可以传输经SM4加密的密文数据,从而验证发送数据已使用服务器密码机进行SM4加密,而不是随便的字符串乱码

    前提操作 搭建客户端和服务端  Socket代码实现服务端 和 客户端之间通信_CHYabc123456hh的博客-CSDN博客 使用wireshark进行数据的监听和测试https://blog.c ...

  6. twisted:基于python的twisted框架编写一个客户端和服务端的对话聊天空间

    twisted:基于python的twisted框架编写一个客户端和服务端的对话聊天空间 目录 输出结果 实现代码 输出结果 更新-- 实现代码 #基于python的twisted框架编写一个简单的聊 ...

  7. php socket 握手,python Socket之客户端和服务端握手详细介绍

    这篇文章主要为大家详细介绍了python Socket之客户端和服务端握手,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 简单的学习下利用socket来建立客户端和服务端之间的连接并且发送数据 1 ...

  8. MMORPG传奇类手游《空空西游》完整源码(客户端cocos2d-js+服务端pomelo+cocosStudio工程+搭建教程)

    MMORPG传奇类手游<空空西游>完整源码,包括:客户端cocos2d-js+服务端pomelo+cocosStudio工程+搭建教程. 客户端:cocos2d-js 服务端:pomelo ...

  9. 微软服务器搭建ngrok,ngrok搭建(Windows服务端+Windows客户端)

    1.go环境搭建(需要Linux系统) 1)下载源码,可以在http://www.golangtc.com/download 2)将其解压到/usr/local目录下: tar -C /usr/loc ...

最新文章

  1. Android 自定义View —— Canvas
  2. 【重建】从FJOI2016一试谈起
  3. jira无法访问此网站_天津制作网站公司:更换空间对网站SEO的影响
  4. 傅立叶变换、拉普拉斯变换、Z变换之间 篇一
  5. VS Code 1.38 发布!
  6. C和指针之判断参数在关键字字符串列表中是否匹配
  7. x210烧写流程(inand)
  8. 关于HTTP协议的几个问题
  9. python工资高还是java-python为什么叫爬虫 python工资高还是java的高
  10. 苹果mac微软windows远程连接工具:microsoft remote desktop
  11. 2019腾讯广告算法大赛解析
  12. 翻译 Learning Unsupervised Video Object Segmentation through Visual Attention
  13. 大创笔记——硬切法实现基于单片机的人机交互系统
  14. Encoder-Decoder综述理解(推荐)
  15. 十余款新品惊艳亮相,华为春季旗舰新品发布会看点满满
  16. uni-app 中文档阅读倒计时
  17. Silverlight 中文教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)
  18. 用C++开发STM32程序
  19. 【转载】sdcard中平添文件总是提示Failed to push the item(s)Failed to push XXXXX.txt on emulato...
  20. ubuntu安装android应用程序,Anbox将使Ubuntu手机能运行Android应用程序

热门文章

  1. 高驰涛——裸奔到北京的程序猿
  2. 基于ATmega16单片机和GPS的多用途定位仪设计
  3. 没有好看的百合漫画,纯纯的校园爱情漫画也不错
  4. 语义分割 - FCN (Fully Convolutional Networks)
  5. Linkage Mapper:从栖息地连通性到物种保护的连通性指南针
  6. Linux无法阅读caj文件解决办法之一(下载pdf文件)
  7. 基于Django 的商城网站源码(1.0)
  8. MySQL数据一致性检查的几个工具
  9. 通俗易懂带你了解Java多线程处理
  10. FPGA之SD卡读写操作