这是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. PHP ACCESS-CONTROL-ALLOW-ORIGIN ,设置跨域头

    php里允许别的域名跨域访问,先解释下跨域 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制. 所谓同源是指,域名,协议,端口均相同 ...

  2. vue实现购物车和地址选配

    参考文献        vue.js官网 项目演示:数据渲染,格式化数据,点击加,减号自动加减 项目准备 1. 项目css和js文件  https://github.com/4561231/hello ...

  3. cookie猜数字游戏(下)------------以及cookie使用的不安全之处

    1.通过cookie可以解决上篇中多个用户对数据的修改,每个COOKIE保存不同用户的数据 <?php if(empty($_COOKIE['num'])||empty($_GET['num'] ...

  4. linux driver ------ 字符设备驱动 之 “ 创建设备节点流程 ”

    在字符设备驱动开发的入门教程中,最常见的就是用device_create()函数来创建设备节点了,但是在之后阅读内核源码的过程中却很少见device_create()的踪影了,取而代之的是device ...

  5. Python对象的创建和赋值

    创建类 类的定义以关键字class开头,之后跟着一个名字(用户定义)来标识这个类,并且以冒号结尾.类的内容以缩进(4个空格)表示,如下例的pass表示什么事情也不做. Python命名规则(以字母或者 ...

  6. 如何用MTR诊断网络问题

    MTR 是一个强大的网络诊断工具,管理员能够用它诊断和隔离网络错误,并向上游提供商提供有关网络状态的有用报告.MTR 通过更大的采样来跟踪路由,就像 traceroute + ping 命令的组合.本 ...

  7. Python list 初始化技巧

    1.一维列表 1.1 递增列表 # 初始化递增的list,与L = [i for i in range(10)] 效果相同 L = range(10) # 版本变化L = i for i in ran ...

  8. Java lombok插件介绍

    lombok是什么? lombok是一个插件,用途是给你类里面的字段,自动的加上属性,构造器,ToString方法,Equals方法等等 lombok怎么安装? 安装网上一搜一大把,这里有一个Idea ...

  9. python 面向对象(经典作业讲解)

    #############################总结######################## # lst =['python%s期' %i for i in range(510)]# ...

  10. python 深浅拷贝 for循环删除

    ###########################总结########################### 1. 基础数据类型补充 大多数的基本数据类型的知识.已经学完了 a='aaaa' ls ...