python网络编程之<套接字1>

来源:互联网 发布:win10 怎么修改mac 编辑:程序博客网 时间:2024/05/16 14:46

一.关于套接字的介绍

1.套接字的大概介绍
<1>网络化的应用程序在开始任何通讯之前都必须要创建套接字,没有它就完全没办法通讯。
<2>一开始,套接字被设计用在同一台主机上多个应用程序之间的通讯,这也叫进程间通讯,或IPC。
<3>套接字有两种,分别是基于文件型的和基于网络型的。
<4>AF_UNIX表示”地址家族:UNIX” –>基于文件的。
AF_INET表示”地址家族:Internet”–>基于网络的。
<5>python只支持AF_INET、AF_UNIX、AF_NETLINK家族。

2.套接字地址:主机和端口
套接字是通讯的最底层结构。一个Internet地址由网络通讯所必需的主机和端口组成。

3.面向连接与无连接
无论使用哪一种地址家族,套接字的类型只有两种:面向连接的套接字和无连接的套接字

<1>面向连接的套接字
i.在通讯前一定要建立一条连接,面向连接的通讯方式提供了顺序的,可靠的,不会重复的数据传输。
ii.实现这种连接的主要协议是TCP(传输控制协议),要创建TCP套接字就得在创建的时候指定套接字的类型为SOCK_STREAM。

<2>无连接的套接字
i.无需连接就可以进行通讯,数据到达的顺序,可靠性及数据不重复性就无法保证了。
ii.实现这种连接的主要协议是UDP(用户数据报协议),要创建UDP套接字就得在创建的时候指定套接字类型为SOCK_DGRAM。

二.python中的网络编程
主要使用socket模块,模块中的socket()函数被用来创建套接字。套接字会提供一系列函数来支持基于套接字的网络通讯。

1.socket()模块函数
使用socket.socket()函数来创建套接字,语法:

sockete(socket_family,socket_type,protocol=0)

讲解:
socket_family可以是AF_UNIX或AF_INET;socket_type可以是SOCK_STREAM或SOCK_DGRAM;protocol一般不填,默认值是0.

<1>创建一个TCP/IP的套接字

tcpSock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

<2>创建一个UDP/IP的套接字

udpSock=sock.socket(socket.AF_INET,socket.SOCK_DGRAM)

2.套接字对象方法
图片中介绍了套接字s的主要方法:

这里写图片描述

0 0
原创粉丝点击