当前位置: 首页> 技术文章> 用python实现socket编程

用python实现socket编程

用python实现socket编程

深圳多测师小树原创

日期:2019-12-13


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

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

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

upfile1576237499300.png

 

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类型的socket
host = '127.0.0.1'
port = 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",addr
    conn.sendall("yes sir")
    print conn.recv(1024)
conn.close()
   # conn.sendall('reply')

upfile1576237539751.png

 
5,客户端代码:
#_*_ coding:utf-8 _*_
#客户端
#导入socket模块
import socket
#创建TCP类型的socket
c = 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)#接受的结果传给result
    print result #输出接受到的结果
#关闭连接
c.close()

upfile1576237564688.png

 


需要了解更多技术和获取更多免费技术视频的可以微信我(15367499889)或者加入我们多测师的技术交流群:

关注我们多测师的微信公众号定期获得福利哦!!!

upfile1583500570164.png                       upfile1583500583471.png   


更多免费软件测试和python、Java开发、大数据和人工智能的学习资料就在多测师官网地址:http://www.duoceshi.cn

加入我们只需要三个月就可以月薪上万!!!

upfile1583500745149.png


上一篇: 用robotframework框架基于databaselibrary库做数据库自动化测试

下一篇: 软件测试之手工测试人员如何转测试开发?

QQ技术交流群

多测师官方学习交流
556733550

加入群聊