这是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客户端的更多相关文章

  1. python小练习---TCP服务器端

    针对于上一篇分享python小练习---TCP客户端 http://www.cnblogs.com/zhaijiahui/p/6926197.html我继续按书中内容,向下进行这里需要强调一个事py3 ...

  2. python编程系列---tcp客户端的简单实现

    实现流程如下: """ TCP客户端实现流程1. 创建一个tcp 客户端对象2. 与服务端建立连接3. 通过tcp socket 收发数据4. 关闭连接 关闭tcp &q ...

  3. python网络编程--TCP客户端的开发

    #导入socket模块 2 import socket 3 #参数说明 4 """ 5 socket类的介绍 6 创建客户端socket对象 7 socket.socke ...

  4. python socket之tcp服务器与客户端demo

    python socket之tcp服务器与客户端demo 作者:vpoet mails:vpoet_sir@163.com server: # -*- coding: cp936 -*- ''' 建立 ...

  5. 170925_1 Python socket 创建TCP的服务器端和客户端

    [Python版本]3.6 [遇到的问题] 客户端和服务器端都遇到:TypeError: a bytes-like object is required, not 'str' [解决方案] 参考:ht ...

  6. python网络编程socketserver模块(实现TCP客户端/服务器)

    摘录python核心编程 socketserver(python3.x版本重新命名)是标准库中的网络编程的高级模块.通过将创建网络客户端和服务器所必须的代码封装起来,简化了模板,为你提供了各种各样的类 ...

  7. python黑帽子之tcp客户端

    在渗透测试过程中,我们经常会需要创建一个tcp客户端来连接服务,发送垃圾数据,进行模糊测试等任务,所以我们来用python创建一个简单的tcp客户端. import sockettarget_host ...

  8. Python TCP客户端

    import socket target_host="www.baidu.com" target_port=80 # 建立一个socket对象 client=socket.sock ...

  9. 【RL-TCPnet网络教程】第14章 RL-TCPnet之TCP客户端

    第14章      RL-TCPnet之TCP客户端 本章节为大家讲解RL-TCPnet的TCP客户端实现,学习本章节前,务必要优先学习第12章TCP传输控制协议基础知识.有了这些基础知识之后,再搞本 ...

随机推荐

  1. Collection 接口

    Collection 接口中的方法 ArrayList implements List List extends Collection 主要方法:toArray(); 集合转数组 clear(); 清 ...

  2. 使用CMD 命令创建指定大小的文件

    在做资源更新的时候要做 磁盘空间不足的测试,于是想创建一个文件塞满硬盘,搜索到可以用命令来创建. fsutil file createnew null.zip 524288000

  3. 剑指Offer_编程题_10

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? class Solution { public: int r ...

  4. FastDFS 分布式文件系统部署实战及基本使用

    FastDFS 分布式文件系统部署实战及基本使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. FastDFS是一个开源的高性能分布式文件系统.它的主要功能包括:文件存储,文件同步 ...

  5. 基于zookeeper(集群)+LevelDB的ActiveMq高可用集群安装、配置、测试

    一. zookeeper安装(集群):http://www.cnblogs.com/wangfajun/p/8692117.html  √ 二. ActiveMq配置: 1. ActiveMq集群部署 ...

  6. VirtualBox下安装Ubuntu Server 16.04

    安装环境: Windows:确保磁盘空间足够,一般需要8个G左右. 所需文件: 首先在Ubuntu的官网上下载.iso的镜像文件,链接是:http://www.ubuntu.org.cn/server ...

  7. Jpush极光推送

    require 'jpush' class SidkiqJpushWorker include Sidekiq::Worker # args[0] msg : args[1] region_id ; ...

  8. Java Service Wrapper 使用

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sinat_26279177/article/details/70807173 1       简介 ...

  9. PHP7 学习笔记(十二)gRPC

    GitHub:https://github.com/grpc/grpc/tree/master/src/php 环境:Linux + php7 1.安装grpc pecl install grpc 编 ...

  10. UUID在Java中的实现与应用

    UUID是什么 UUID的全称为:Universally Unique IDentifier,也被称为GUID(Globally Unique IDentifier).是一种由算法生成的唯一标识,它实 ...