python小练习---TCP客户端
这是python黑帽子上的起始练习,我对其中的用到的函数做了注释,以便日后便于理解。
该程序可以访问百度,返回响应信息。
另外,我注释还有一部分UDP客户端的语句,TCP和UDP对比便于记忆。
# -*- coding:utf-8 -*-
# 创建客户端,类似于浏览器发送请求 import socket target_host = "www.baidu.com" # 127.0.0.1
target_port = 80 # 建立一个socket对象
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 创建TCP连接
# socket.AF_INET 使用标准的IPv4地址或者主机名
# socket.SOCK_STREAM 流式socket,应用于TCP
# socket.SOCK_DGRAM 数据报式socket,应用于UDP
# client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 创建UDP连接 # 连接客户端
client.connect((target_host,target_port))
# 连接到address处的套接字。一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。
# client.connect_ex(host,port) 成功返回0,失败返回error # 发送一些数据
client.send(("GET / HTTP/1.1\r\nHost: baidu.com\r\n\r\n").encode())
# 发送TCP数据。将string中的数据发送到连接的套接字。
# 返回值是要发送的字节数量,该数量可能小于string的字节大小。
# UDP发送
# s.sendto(string[,flag],address)
# 将数据发送到套接字,address是形式为(ipaddr,port)的元组,指定远程地址。返回值是发送的字节数。
# client.sendto("AAABBBCCC",(target_host,target_port)) # 接收一些数据
response = client.recv(4096)
# s.recv(bufsize[,flag]) 接受TCP套接字的数据。
# 数据以字符串形式返回,bufsize指定要接收的最大数据量。
# flag提供有关消息的其他信息,通常可以忽略。
# UDP接收
# s.recvfrom(bufsize[.flag])
# 接受UDP套接字的数据。与recv()类似,但返回值是(data,address)。
# 其中data是包含接收数据的字符串,address是发送数据的套接字地址。
# data,addr = client.recvfrom(4096) print(response)
# print(data)
# 关闭连接
# client.close()
推荐这篇文章对socket介绍的很详细 http://blog.csdn.net/rebelqsp/article/details/22109925
python小练习---TCP客户端的更多相关文章
- python小练习---TCP服务器端
针对于上一篇分享python小练习---TCP客户端 http://www.cnblogs.com/zhaijiahui/p/6926197.html我继续按书中内容,向下进行这里需要强调一个事py3 ...
- python编程系列---tcp客户端的简单实现
实现流程如下: """ TCP客户端实现流程1. 创建一个tcp 客户端对象2. 与服务端建立连接3. 通过tcp socket 收发数据4. 关闭连接 关闭tcp &q ...
- python网络编程--TCP客户端的开发
#导入socket模块 2 import socket 3 #参数说明 4 """ 5 socket类的介绍 6 创建客户端socket对象 7 socket.socke ...
- python socket之tcp服务器与客户端demo
python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...
- 170925_1 Python socket 创建TCP的服务器端和客户端
[Python版本]3.6 [遇到的问题] 客户端和服务器端都遇到:TypeError: a bytes-like object is required, not 'str' [解决方案] 参考:ht ...
- python网络编程socketserver模块(实现TCP客户端/服务器)
摘录python核心编程 socketserver(python3.x版本重新命名)是标准库中的网络编程的高级模块.通过将创建网络客户端和服务器所必须的代码封装起来,简化了模板,为你提供了各种各样的类 ...
- python黑帽子之tcp客户端
在渗透测试过程中,我们经常会需要创建一个tcp客户端来连接服务,发送垃圾数据,进行模糊测试等任务,所以我们来用python创建一个简单的tcp客户端. import sockettarget_host ...
- Python TCP客户端
import socket target_host="www.baidu.com" target_port=80 # 建立一个socket对象 client=socket.sock ...
- 【RL-TCPnet网络教程】第14章 RL-TCPnet之TCP客户端
第14章 RL-TCPnet之TCP客户端 本章节为大家讲解RL-TCPnet的TCP客户端实现,学习本章节前,务必要优先学习第12章TCP传输控制协议基础知识.有了这些基础知识之后,再搞本 ...
随机推荐
- Html的简单学习笔记
1.Html简介 1)什么是html: HyperText Markup Language:超文本标记语言,网页语言. >超文本:超出文本范围. >标记: html中所有的操作都是使用标记 ...
- Day14--Python--函数二,lambda,sorted,filter,map,递归,二分法
今日主要内容:1. lambda 匿名函数 lambda 参数: 返回值-------------------------------------def square(x): return x**2 ...
- mongoDB-权限控制
启动服务D:\MongoDB\Server\3.6\bin>mongod.exe --dbpath D:\MongoDB\Server\3.6\data 扩展 无认证启动:mongod --po ...
- HDU - 5952 Counting Cliques(DFS)
A clique is a complete graph, in which there is an edge between every pair of the vertices. Given a ...
- grub.conf解析
一.grub简介系统启动引导管理器,是在计算机启动后运行的第一个程序,他是用来负责加载.传输控制到操作系统的内核,一旦把内核挂载,系统引导管理器的任务就算完成退出,系统引导的其它部份,比如系统的初始化 ...
- icmpsh解决运行报错
运行./run.sh报错 sysctl -w net.ipv4.icmp_echo_ignore_all=1 >/dev/null python icmpsh_m.py 攻击机ip 目标机ip ...
- 定时任务调度-Celery
确保任务不重叠解决方法: from celery import task from celery.five import monotonic from celery.utils.log import ...
- python对象-多态
调用不同的子类将会产生不同的行为,而无须明确知道这个子类实际上是什么. 比如,在一个可以播放音频文件的程序中,媒体播放器可能需要加载一个AudioFile对象然后play它,我们把一个play()的方 ...
- REST_返回形式
摘录: "Web resources" were first defined on the World Wide Web as documents or files identif ...
- java基本类型及其相互转换
1.基本数据类型 java中是采用Unicode编码的,其一个字符占用两个字节,故java中字符char可以存储一个中文汉字 整数默认是int类型,浮点数默认是double类型 在定义long类型的变 ...