python网络编程---TCP客户端
0x01 环境
python2、 pycharm
0x02 程序
# -*- coding:UTF-8 -*-
import sockettarget_host='www.baidu.com'
tarfet_port=80
'''
target_host='localhost'
target_port=3345
data='ABCDEF'
'''
# 创建一个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 response
0x03 程序解释
下面这段代码是用来创建一个套接字,socket函数有三个参数
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
分别为:
socket(family,type[,protocal])
- family是地址系列,主要有:
值 | 含义 |
---|---|
socket.AF_INET | IPv4,默认 |
socket.AF_INET6 | IPv6 |
- type是套接字类型,主要有
值 | 含义 |
---|---|
socket.SOCK_STREAM | 创建的套接字基于TCP,默认 |
socket.SOCK_DGRAM | 创建的套接字基于UDP |
- protocal默认就行
当执行完这条语句就会成功创建一个套接字,下面这条语句是与服务器连接,
client.connect((target_host,target_port))
connect函数的参数是地址,地址的用一个元组表示
client.send("GET / HTTP/1.1\r\nHost:baidu.com\r\n\r\n")
这条语句是发送数据语句,socket.send(string[, flags])
发送TCP数据,返回发送的字节大小,这个函数发送的大小有限,当数据太大,不一定一次会全部发送完数据,注意一下。
response=client.recv(4096)
recv是用来接收TCP数据,限定一次接收字节数,数据以字符串的形式返回
0x04 运行结果
python网络编程---TCP客户端相关推荐
- Python网络编程——TCP与UDP
Python网络编程 TCP(复杂可靠)与UDP(简单不可靠)的区别 1) TCP提供面向连接的传输,通信前要先建立连接(三次握手机制): UDP提供无连接的传输,通信前不需要建立连接. 2) TCP ...
- Python网络编程-----TCP
1.TCP TCP通信模型中,在通信开始之前,⼀定要先建⽴相关的连接,才能发送数据,类似于⽣活中,"打电话".TCP编程分为客户端和服务器端两部分组成,所以我们需要首先完成服务器端 ...
- python网络编程—TCP协议(二)
一.TCP协议的原理图 每个客户端与服务端通讯是互不干扰的 二.注意点 1.tcp服务器─般情况下都需要绑定,否则客户端找不到这个服务器 2.tcp客户端一般不绑定,因为是主动链接服务器,所以只要确定 ...
- java基础—网络编程——TCP客户端与服务端交互
import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import ja ...
- Python网络编程【客户端与服务器通信】
一.将数据写在发送语句中[传统方式] server端代码: import socket #服务器端将socket套接字赋给sock套接字 sock=socket.socket(socket.AF_IN ...
- python网络编程——HTTP客户端
1.Python客户端库. urllib和requests是Python对HTTP协议的应用,使用的两个库.urllib是Python的标准内置库,requests是一个比urllib更强大的第三方库 ...
- Python网络编程—TCP套接字之HTTP传输
HTTP协议 (超文本传输协议) 1.用途 : 网页获取,数据的传输 2.特点: 应用层协议,传输层使用tcp传输 简单,灵活,很多语言都有HTTP专门接口 无状态,协议不记录传输内容 http1.1 ...
- [Python 网络编程] TCP、简单socket模拟ssh (一)
OSI七层模型(Open System Interconnection,开放式系统互联) 应用层网络进程访问应用层:为应用程序进程(例如:电子邮件.文件传输和终端仿真)提供网络服务:提供用户身份验证表 ...
- python网络编程—TCP协议(一)
一.TCP协议示意图: listen():监听客户端的连接,客户端有链接,listen马上就有返回. accept():连接之后,会返回客户端的信息(ip地址.端口号),如果没有连接则一直堵塞.连接成 ...
最新文章
- Linux的内存理解
- JavaScript 模块化七日谈
- sudo apt-get update 与 sudo apt-get upgrate 的区别
- 利用XML实现通用WEB报表打印 卢彦
- MariaDB 10的复制 集群 高可用搭建 大表拆分【持续更新中】
- linux下gate版本管理,Linux安装使用GoldenGate
- wpgcms---列表页数据渲染
- Python——rrdtool模块的安装
- 有り様、状態、様子 の 区別
- word2016实现制表法设置公式居中,公式居中,编号右对齐
- form表单file,select选择后自动提交
- OFFICE技术讲座:段落五种对齐方式的说明
- ABP框架----添加权限
- Python爬虫---汽车之家字体反爬
- 【音频】削波失真(爆音)问题定位与解决
- 2020用户行为分析领域最具商业合作价值企业盘点
- 网易云MUSIC年终奖0.5?听到消息我扔了耳机
- linux编译poco静态库,iOS——为Xcode编译POCO C++静态库
- ipa在线安装搭建_iOS12.4.1 越狱无法安装?教你百分百安装
- 从今天开始学习C语言,力求做一个最棒的Linux C开发人员
热门文章
- FROONT – 超棒的可视化响应式网页设计工具
- response对象的使用
- HTML的display属性将行内元素、块状元素、行内块状元素互相转换以及三者的区别
- hinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
- 2090. 「ZJOI2016」旅行者 分治,最短路
- 08 Spring框架 AOP (一)
- spark SQL(三)数据源 Data Source----通用的数据 加载/保存功能
- Java 性能优化实战记录(2)---句柄泄漏和监控
- Win32动态库 Lib文件哪去了
- 分割范围Codeforces Round #181 (Div. 2)