socket通信

套接字
套接字:
为特定网络协议(例如tcp/ip.icmp/ip,udp/ip)等套件上的网络应用程序提供者提供当前可移植标准的对象.

套接字为BSD unix系统核心上的一部分,而且他们也被很多其他类似unix的操作系统包括linux所采纳.

许多非BSD UNIX系统也都以库形式提供对套接字的支持.

stream和datagram套接字可以直接与tcp协议进行接口,而raw套接字则接口到IP协议.但套接字并不局限于tcp/ip协议.

套接字模块是一个非常简单的基于对象的接口,他提供对底层BSD套接字样式网络的访问.使用该模块可以实现对客户机和服务器套接字.而在python中建立具有tcp和套接字的简单服务器,需要使用socket模块.利用该模块包含的函数和类定义,可以生成网络通信的程序.一般来说建立服务器链接需要六个步骤:

1.创建socket对象.利用socket构造函数
socket = socket.socket(family,type)
family的值可以是AF_UNIX(Unix域,用于同一台机器上的进程间通信),也可以是AF_INET(对于IPV4协议的TCP和ip)至于type参数,SOCK_STREAM(流套接字)或者SOCK_DGRAM(数据报接字),SOCK_RAW(raw套接字)

第2步:则是将socket绑定(指派)到指定地址上.socket.bind(address)
address必须是一个双元素元组((host,port)),主机名或者Ip地址+端口号.如果端口号正在使用或者保留,或者主机名或ip地址错误,则引发socke.error异常.
第3步:
绑定后,必须准备好套接字,以便接受连接请求.
sock.listen(bocklog)
bocklog指定了最多连接数,至少为1,接到连接请求后,这些请求必须排队,如果队列已满了,则拒绝请求.

 

posted @ 2012-12-28 14:17  sgsheg  阅读(186)  评论(0编辑  收藏  举报