用python实现socket编程

1,socket的定义:Socket的英文原义是“孔”或“插座”,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket;

建立网络通信连接至少要一对端口号(socket),socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力;

套接字:源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字;其用于标识客户端请求的服务器和服务;

2,python编写socket的步骤;1) 创建socket对象,调用socket构造函数:socket = socket.socket( family, type )2) 将socket绑定到指定地址socket.bind( address )3) 使用socket套接字的listen方法接收连接请求socket.listen( backlog )4) 服务器套接字通过socket的accept方法等待客户请求一个连接connection, address = socket.accept()5) 处理阶段,服务器和客户端通过send和recv方法通信(传输 数据)send--发送信息, recv--接收数据;6) 传输结束,服务器调用socket的close方法关闭连接;

3,python编写client的步骤:1) 创建一个socket以连接服务器:socket = socket.socket( family, type )2) 使用socket的connect方法连接服务器socket.connect( (host,port) )3) 处理阶段,客户和服务器将通过send方法和recv方法通信;4) 传输结束,客户通过调用socket的close方法关闭连接;

4,服务端代码:#_*_ coding:utf-8 _*_#服务端#导入socket模块import socket#创建TCP类型的sockethost = 127.0.0.1port = 8997*端口号每连接一次换一个连就ok了!#建立一个socket对象,AF_INET说明将使用标准的IPv4地址,SOCK_STREAM说明是一个TCP客户端s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind((host, port))s.listen(2)conn,addr= s.accept()#创建socket和客户端通信;while 1:print "Connected by",addrconn.sendall("yes sir")print conn.recv(1024)conn.close() # conn.sendall(reply)

5,客户端代码:#_*_ coding:utf-8 _*_#客户端#导入socket模块import socket#创建TCP类型的socketc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#建立到指定IP地址,端口的TCP连接c.connect((127.0.0.1, 8997))*端口号每连接一次换一个连就ok了!while 1:data = raw_input("please go out!:")c.send(data)#发送数据result = c.recv(1024)#接受的结果传给resultprint result #输出接受到的结果#关闭连接c.close()

如需了解更多测试技术信息请关注: 深圳市多测师信息技术有限公司