(17)python 网络编程

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

posted @ 2019-02-01 15:25  富坚老贼  阅读(197)  评论(0编辑  收藏  举报