博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python网络编程
阅读量:6074 次
发布时间:2019-06-20

本文共 1766 字,大约阅读时间需要 5 分钟。

一、概述

  Python 提供了两个级别访问的网络服务。

  • 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。
  • 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发

二、参数

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

三、服务端

  我们使用 socket 模块的 socket 函数来创建一个 socket 对象。socket 对象可以通过调用其他函数来设置一个 socket 服务。

现在我们可以通过调用 bind(hostname, port) 函数来指定服务的 port(端口)

接着,我们调用 socket 对象的 accept 方法。该方法等待客户端的连接,并返回 connection 对象,表示已连接到客户端。

完整代码如下:

1 # coding=utf-8 2 # 文件名:server.py 3  4 import socket               # 导入 socket 模块 5  6 s = socket.socket()         # 创建 socket 对象 7 host = socket.gethostname() # 获取本地主机名 8 port = 12345                # 设置端口 9 s.bind((host, port))        # 绑定端口10 11 s.listen(5)                 # 等待客户端连接12 while True:13     c, addr = s.accept()     # 建立客户端连接。14     print 'address:', addr15     c.send('welcome to!')16     c.close()                # 关闭连接

四、客户端

  接下来我们写一个简单的客户端实例连接到以上创建的服务。端口号为 12345。

socket.connect(hosname, port ) 方法打开一个 TCP 连接到主机为 hostname 端口为 port 的服务商。连接后我们就可以从服务端后期数据,记住,操作完成后需要关闭连接。

完整代码如下:

1 # coding=utf-8 2 # 文件名:client.py 3  4 import socket               # 导入 socket 模块 5  6 s = socket.socket()         # 创建 socket 对象 7 host = socket.gethostname() # 获取本地主机名 8 port = 12345                # 设置端口好 9 10 s.connect((host, port))11 print host12 print socket.gethostbyaddr(host)13 print socket.SocketType14 print s.recv(1024)15 s.close()

五、Python Internet 模块

  以下列出了 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

   

 

 

 

 

 

 

 

   

转载于:https://www.cnblogs.com/swarmbees/p/6160288.html

你可能感兴趣的文章
清除历史记录
查看>>
Linux下如何解压.tar.bz2格式的压缩包
查看>>
centos6.6 安装 glances
查看>>
Mybatis 动态SQL
查看>>
Mybatis的缓存机制详解
查看>>
Prawn Notes
查看>>
CENTOS 6.5 配置YUM安装NGINX
查看>>
MySQL 企业常用架构与调优经验分享
查看>>
Navigation中间区域图片的缩放效果
查看>>
oracle启动报错:ORA-00845: MEMORY_TARGET not supported on this system
查看>>
Awesome Go 收集了 Go 语言的流行库,框架和软件。
查看>>
多文件上传
查看>>
linux网络
查看>>
一、安装APACHE
查看>>
我的友情链接
查看>>
linux中用shell获取昨天、明天或多天前的日期
查看>>
多自治系统之间MPLS ××× 实施详解
查看>>
ruby tk尝试
查看>>
WCF服务发布到IIS中去(VS2013+win7系统)
查看>>
【Intellij IDEA】eclipse项目导入
查看>>