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. 【BZOJ 1724】[Usaco2006 Nov]Fence Repair 切割木板 堆+贪心

    堆对于stl priority_queue ,我们自己定义的类自己重载<,对于非自定义类我们默认大根堆,如若改成小根堆则写成std::priority<int,vector<int& ...

  2. 【NOIP 模拟赛】钟 模拟+链表

    biubiu~~ 这道题实际上就是优化模拟,就是找到最先死的让他死掉,运用时间上的加速,题解上说,要用堆优化,也就是这个意思. 对于链表,单项链表和循环链表都不常用,最常用的是双向链表,删除和插入比较 ...

  3. yum命令Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

    yum命令Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 博客分类: linux   三种解决方案 我采取第三种方案解决的 第一种: linu ...

  4. 注意@Bean中的initMethod和destroyMethod

    @Configuration public class AppConfig { @Bean(initMethod = "init") public Foo foo() { retu ...

  5. 布局之BFC

    BFC 什么是BFC,在哪里需要用到BFC,BFC有什么规则?生成BFC有什么条件?这几个问题,我将为大家一一解释,下面我们进入正题. BFC(Block formatting context)直译为 ...

  6. Web项目中加载Spring配置的常用方法

    1.web.xml中添加配置 <web-app>      <context-param>         <param-name>contextConfigLoc ...

  7. 经典DFS问题 oilland 连通块

    #include "iostream" #include "cstdio" using namespace std; ][]={{,},{,-},{,},{-, ...

  8. 最大流算法 ISAP 模板 和 Dinic模板

    ISAP // UVa11248 Frequency Hopping:使用ISAP算法,加优化 // Rujia Liu struct Edge { int from, to, cap, flow; ...

  9. shell分发文件脚本

    配置文件scp.conf ssh_hosts=("IP") #需要分发机器的所有IP ssh_ports=("22") ssh_users=("roo ...

  10. 前端导出文件功能document.execCommand命令

    参照 http://blog.csdn.net/woshinia/article/details/18664903