python网络编程

27次阅读

共计 1288 个字符,预计需要花费 4 分钟才能阅读完成。

python 学习记录 – 网络编程
1、套接字介绍
一台机器上的不同进程之间进行通信可以利用队列,管道等,但是不同机器之间的进程进行通信用队列是不行的,解决这个问题就是网络套接字。
套接字是计算机网络数据结构,它体现了通信端点的概念。在任何类型的通信开始之前,网络应用程序必须创建套接字。可以将它比作电话插孔,没有它无法进行通信。
套接字最初是为同一主机上的应用程序所创建,使得主机上一个程序(进程)可以和主机上另外一个程序互相通信,也就是所谓的进程间通信。有两种类型的套接字:基于文件和基于网络的。

基于文件的套接字,家族名:AF_UNIX(又名:AF_LOCAL)
基于网络的套接字,家族名:AF_INET

在 python2.5 和后续的版本中,支持的套接字有:AF_UNIX,AF_INET,AF_TICP,AF_NETLINK。python 中的网络编程主要是 AF_INET。
1.1、套接字地址:主机 + 端口如果一个套接字像一个电话插孔——允许通信的一些基础设施,那么主机名和端口号就像区号和电话号码的组合。有效的端口号范围为 0~65535(小于 1024 的端口号预留给了系统)。
1.2、面向连接和无连接的套接字 python 中创建面向连接 (TCP 协议) 的套接字必须使用 SOCK_STREAM 作为套接字类型,而创建无连接 (UDP 协议) 的套接字必须使用 SOCK_DGRAM 作为套接字类型。
2、python 中的网络编程
在 python 中主要是用 socket 模块来实现基于套接字的网络通信。2.1、socket()模块函数使用 socket.socket()函数创建套接字,一般语法格式如下:
import socket
socket(socket_family,socket_type,protocol=0)

# 其中,socket_family 就是 AF_UNIX 或者 AF_INET 等,
#socker_type 是 SOCK_DGRAM 或者 SOCK_STREAM,
#protocol 通常省略,默认为 0
创建一个 TCP/IP 套接字,可以用下面方式调用 socket.socket()。
tcpSocket = socket.socket(socket.AF_INET,socket.SCOK_STREAM)
创建一个 UDP/IP 套接字,可以用下面方式调用 socket.socket()。
udpSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
如果用 ”from socket import *” 导入模块的话,创建套接字就可以节省很多代码,例如创建一个 UDP/IP 套接字。
from socket import *
udpSock = socket(AF_INET,SOCK_DGRAM)
有了套接字对象,就可以使用套接字对象方法进行交互。
2.2、套接字方法常见的套接字方法:

方法名
描述

s.send()
发送 TCP 消息

s.sendto()
发送 UDP 消息

s.recv()
接收 TCP 消息

s.recvfrom()
接收 UDP 消息

s.close()
关闭套接字

s.bind()
将地址 (主机名 + 端口号对) 绑定到套接字上

正文完
 0