socket网络模块
socket模块提供了一个用Python进行网络连接的库。
套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将输入和输出(I/O)插入到网络中,并与网络中的其他应用程序进行通信。
socket = IP地址 + 端口号
每台电脑都有唯一的IP地址,你可以通过互联网向你知道的IP地址的电脑发送数据,比如你通过QQ向我发送一个问候语,在我电脑上的QQ软件就会接收到你发给我的信息,那么QQ软件是怎么做到呢?很显然要给我电脑发送数据的第一个条件就是你必须要知道我的电脑ip地址(我登录的电脑QQ软件会获取我电脑的IP地址),而电脑上那么多软件,你电脑上的QQ软件怎么知道发送到具体的哪个软件,这时候端口的定义就是为了解决这个问题的,然后再通过具体账号送至我的QQ消息栏里面。
端口定义:端口就是为了区分程序的标识符
电脑上的端口分为两种,知名端口和动态端口:
知名端口范围:0-1023
动态端口范围:1024-65535
查看windows电脑IP地址的指令:ipconfig
查看windows电脑端口的指令:netstat - an
TCP协议 = 协议 + IP + 端口
实例:
>>> import socket >>> socket.setdefaulttimeout(2) #设置超时 >>> s = socket.socket() #创建实例 >>> ip = "192.168.137.1" >>> s.connect((ip,21)) #连接服务器 >>> s.send("您好".encode("GBK")) #发送信息并设置编码格式 4 >>> info = s.recv(1024) #读取服务器发来的信息并设置接收的最大字节1024 >>> print(info) #打印收到的信息 b'\xc4\xfa\xba\xc3\xa3\xa1' >>> print(info.decode("GBK")) #解码输出 您好!