码迷,mamicode.com
首页 > 其他好文 > 详细

Socket编程

时间:2015-06-25 11:44:36      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

(本文是通过python实现的socket编程)

一、客户端编程

1、建立socket

  第一步:建立一个实际的socket对象

    建立socket对象,需要告诉系统两件事情:通信类型和协议家族。

    通信类型指明用了什么协议传输数据,通常是AF_INET(对应于IPv4);

    协议家族一般是表示TCP通信的SOCK_STREAM或表示UDP通信的SOCK_DGRAM。

  

  第二步:连接到远程服务器

    注意提供的是远程服务器的一个tuple,包含远程主机名或IP地址、远程端口号。

2、寻找端口号

  Python的socket库中包含一个getservbyname()的函数,通过它可以自动查询端口名相应的端口号。

  例如:

    技术分享

3.从socket中获取信息

  一旦建立一个socket连接,我们就可以从socket中得到一些有用的信息。

  常用的是:

    技术分享

  第一个是本机的IP地址和端口号,第二个是服务器的IP地址和端口号

 

4.寻找IP地址

  Python的socket库中包含一个gethostbyname()的函数,通过它可以自动查询域名对应的IP地址。

  例如:

    技术分享

  这个功能还是非常实用的!很赞!

 

二、服务器端编程

  对于服务器,建立一个TCP连接需要4步:

    (1)建立socket对象;

    (2)设置socket选项(可选的);

    (3)绑定到一个端口(童谣,也可以是一个指定的网卡)。

    (4)侦听连接。

1、建立socket对象

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

2、设置和得到socket对象

  通常,在一个服务器进程终止后,操作系统会保留几分钟它的端口,从而防止其他进程在超时之前使用这个端口。我们可以设置SOC_REUSADDR为true,操作系统会在服务器socket被关闭或服务器进程终止后,马上释放该服务器的端口。

  还有其他的选项,可以自行设计。

3、绑定socket

  为服务器绑定一个端口号。

    s.bind(("IP",port))

4、侦听连接

  s.listen(5)

 

Socket编程

标签:

原文地址:http://www.cnblogs.com/acode/p/4599336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!