TCP连接的断点是由一个IP地址和一个端口号来唯一标识的

客户端/服务器

客户端总是最开始申请连接的一端,服务器则是等待客户端连接的一段

服务器的端口号如果不是特殊用土的一般应该大于1024,客户端则由操作系统随机挑选一个端口号

底层接口Socket

1、服务端

创建一个socket对象

s=socket.socket()

获得计算机名

host=socket.gethostname()
>>> import socket
>>> s=socket.socket()
>>> host=socket.gethostname()
>>> print host
PC201609230952
>>>

实际计算机名:

socket对象的bind函数来绑定地址和端口号

s.bind((host,prot))

设定多少人可以连接到服务器(还没开始连)

s.listen(10)

服务器调用accept方法后,会进入waiting状态。当有客户端请求连接时,accept会返一个元组,里面包含两个元素,

connection, address = s.accept()

第一个c是一个新的连接客户端的socket,第二个是客户端的IP地址

发送给客户端信息

c.send('hello')

关闭socket连接

c.close()

2、客户端

urllib包包含4个模块,在python3里urllib导入要用包名加模块名的方式。

1.urllib.request

该模块主要用于打开HTTP协议的URL

import urllib.request

抓取某个网址的所有HTML代码,返回一个request对象。(网址要带上协议)

urlobject=urllib.request.urlopen('http://www.baidu.com')

用对象的read方法

print (urlobject.read(10))#打印出前10个字符,游标向后移动10位。如果read方法里不写数字默认打印出全部代码

返回字节型数据

>>> type(urlobject.read(10))
<class 'bytes'>
>>> print (urlobject.read(10))
b'<!DOCTYPE '
>>> print (urlobject.read(15))
b'html>\n<!--STATU'
>>> print (urlobject.read(15))
b'S OK-->\n\r\n\r\n\r\n\r'
>>>

执行了三次观察了下,都已字母b开头加一个字符串,字符串里面的字符串就是read括号里的数量,\n 或 \r 占一个字符

2.urllib.parse

3.urllib.error

4.urllib.robotparser

(17)python 网络编程的更多相关文章

  1. Python 网络编程(二)

    Python 网络编程 上一篇博客介绍了socket的基本概念以及实现了简单的TCP和UDP的客户端.服务器程序,本篇博客主要对socket编程进行更深入的讲解 一.简化版ssh实现 这是一个极其简单 ...

  2. Python 网络编程(一)

    Python 网络编程 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. ...

  3. python 网络编程:socket

    在学习socket之前,我们先复习下相关的网络知识. OSI七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层.OSI七层模型是由国际标准化组织ISO定义的网络的基本结构,不仅包括一 ...

  4. Python网络编程基础|百度网盘免费下载|零基础入门学习资料

    百度网盘免费下载:Python网络编程基础|零基础学习资料 提取码:k7a1 目录: 第1部分 底层网络 第1章 客户/服务器网络介绍 第2章 网络客户端 第3章 网络服务器 第4章 域名系统 第5章 ...

  5. Python网络编程基础 PDF 完整超清版|网盘链接内附提取码下载|

    点此获取下载地址提取码:y9u5 Python网络编程最好新手入门书籍!175个详细案例,事实胜于雄辩,Sockets.DNS.Web Service.FTP.Email.SMTP.POP.IMAP. ...

  6. Python网络编程之网络基础

    Python网络编程之网络基础 目录 Python网络编程之网络基础 1. 计算机网络发展 1.1. OSI七层模型 1.2. 七层模型传输数据过程 2. TCP/IP协议栈 2.1 TCP/IP和O ...

  7. Python学习(22)python网络编程

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  8. Day07 - Python 网络编程 Socket

    1. Python 网络编程 Python 提供了两个级别访问网络服务: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口 ...

  9. python网络编程-01

    python网络编程 1.socket模块介绍 ①在网络编程中的一个基本组件就是套接字(socket),socket是两个程序之间的“信息通道”. ②套接字包括两个部分:服务器套接字.客户机套接字 ③ ...

随机推荐

  1. ECharts饼图制作分析

    ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11 ...

  2. 【BZOJ 4605】崂山白花蛇草水 替罪羊树套线段树

    外层是借鉴了kd-tree的替罪羊里层是线段树,插入就是正常插入+拍扁重建,查询的时候,我们就像树状数组套线段树一样操作在替罪羊中找到的线段树根节点,但是对于在kd-tree查找过程中遇到的单点,我们 ...

  3. 【BZOJ 2879】[Noi2012]美食节 费用流

    思路同修车,就是多了一个骚气的操作:动态加边,我们通过spfa流的过程可以知道,我们一次只会跑一流量,最后一层边跑过就不会再悔改,所以说我们只会用到一大片里面的很少的点,所以我们如果可以动态加边的话我 ...

  4. Educational Codeforces Round 54 (Rated for Div. 2) ABCD

    A. Minimizing the String time limit per test 1 second memory limit per test 256 megabytes Descriptio ...

  5. lwIP内存管理机制

    lwip的内存管理机制,我们以enet_lwip这个例程为例. 在使用lwip的时候,我们可以使用两种形式的内存,一种是heap(mem.c文件-mem_malloc()),一种是pool(memp. ...

  6. 解读python小练习

    1.新建一个函数,判断是不是int 类型,并测试,不是抛出错误def adder(x, y):"""Return x + y if they are both integ ...

  7. LVS+Keepalived搭建MyCAT高可用負載均衡集群

    1.前面我们已经搭建好mysql主主,并且用mycat实现双写功能,主要配置文件: [root@mycat2 conf]# cat schema.xml <?xml version=" ...

  8. Java节假日算法

    类:Vacation package test; import java.io.Serializable; import java.util.Date; public class Vacation i ...

  9. mysql 基本操作练习

    ), sex ), age )); , '北京'); , '上海'); , '广州'); , '北京'); , '北京'); , '上海'); , '北京'); #(). 写出sql语句,查询所有年龄 ...

  10. 计算机网络中七层,五层,四层协议;IP 地址子网划分

    七层协议: 7 应用层(http) 6 表示层(上层用户可以相互识别的数据:jpg) 5 会话层(不同主机不同线程间的通信) 4 运输层(tcp/ip:传输层提供端到端的透明数据服务)/差错控制和流量 ...