python3 网络编程学习笔记--socket模块

前言:

学习一门编程语言,不会网络编程那就没有任何意义了。一般来说,网络编程也叫作socket编程。下面将要讲解python3中的socket模块。

函数使用:

第一,创建套接字(socket):socket.socket(family[,type[,proto]])

有三个参数:

  • family: 套接字家族可以使AF_UNIX或者AF_INET
  • type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAMSOCK_DGRAM
  • protocol: 一般不填默认为0

获取主机机名字:socket.gethostname()

获取IP地址:socket.gethostbyname(),把上面的返回值作为参数或者输入域名

gethostbyname_ex(name),它返回一个包含三个元素的元组,分别是给定地址的主要的主机名、同一IP地址的可选的主机名的一个列表、关于同一主机的同一接口的其它IP地址的一个列表(列表可能都是空的)。

gethostbyaddr():输入IP地址,返回域名以及IP地址

getservbyname():根据协议名返回端口

socket对象的方法:

服务器有三个方法:绑定(bind),监听(listen),接受(accept)

bind:两个参数,ip和端口

监听:可以设置监听数

客户端有一个方法:连接(connect):ip+端口

公共方法:接收,发送,关闭,获取IP地址和端口,超时设置,设置阻塞模式

接收有两种,一种是TCP(recv),一种是udp(recvfrom)

发送也有两种,一种是tcp(send<有可能发送的字节少了>和sendall<完整发送,如果不能完整发送则抛出异常>),一种是udp(sendto)

获取IP地址和端口:getsocketname(套接字自己的地址)和getpeername(远程地址)

超时设置:settimeout(设置),gettimeout(获取)

设置阻塞模式:setblocking(flag)--->flag为0 为非阻塞。

socket模块仅仅是基础模块:

以下列出了 Python 网络编程的一些重要模块:

协议 功能用处 端口号 Python 模块
HTTP 网页访问 80 httplib, urllib, xmlrpclib
NNTP 阅读和张贴新闻文章,俗称为"帖子" 119 nntplib
FTP 文件传输 20 ftplib, urllib
SMTP 发送邮件 25 smtplib
POP3 接收邮件 110 poplib
IMAP4 获取邮件 143 imaplib
Telnet 命令行 23 telnetlib
Gopher 信息查找 70 gopherlib, urllib

你可能感兴趣的:(python3 网络编程学习笔记--socket模块)