Python socket套接字模块server/client端操作

  • A+
所属分类:Python


如果想用Python做一个服务器端和客户端的通信程序,那么就一定要选择标准库中的 scoket 套接字模块,它支持多种网络协议:TCP/IP、ICMP/IP、UDP/IP等。

在网络中一个最基本的组件就是套接字(socket),它的功能是在2个程序之间建立信息的通道。

socket包括2个套接字,一个是服务器端(server),一个是客户端(client)。在一个程序中创建服务器端的套接字,让它等客户端的连接,这样它就在这个IP和端口处,监听。

处理Client端套接字通常比处理服务器端套接字相对容易一些,因为服务器端还要准备随时处理客户端的连接,同时还要处理多个连接任务。
而客户端只需要简单的设置好IP和端口就可以完成任务了。

socket套接字有2个方法,一个是send,另一个是recv,它们用来传输数据信息。
可以用字符串参数调用send方法发送数据,用一个所需的最大字节数做参数调用recv方法来接收数据。

下面安云网编写了一个简单的服务端和客户端程序,
源码案例如下:

一、socket服务器端源码

>>> import socket #导入socket套接字模块
>>> s = socket.socket() #创建socket对象
>>> host = socket.gethostname() #得到当前主机名
>>> port = 24 #端口号
>>> s.bind(host, post)

>>> s.listen(5)
>>> while True:
>>> c, addr = s.accept()
>>> print ‘Got connection from’,addr
>>> c.send(‘Hello, www.AnYun.ORG’) #发送信息
>>> c.close() #关闭socket

二、socket客户器端源码

>>> import socket
>>> s = socket.socket()
>>> host = socket.gethostname()
>>> post = 1234

>>> s.connect((host, port))
>>> print s.recv(1024)

大家如果想了解更详细的关于 Socket套接字模块的信息,可以参考Python官网的标准库:http://docs.python.org/2/library/socket.html
如果有任何关于Python的问题,都可以加入安云网的Python答疑QQ群:20419428。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: