一、socket是什么
在TCP/IP五层协议中,工作在应用层的软件程序要想把它的数据发送给网络另一端的计算机并让那台计算机能把接收到的数据正常解析出来传递给对应的程序就需要按照互联网协议在数据的前面依次加上每一层的头部信息,如果这个过程让程序员自己去完成就需要去了解每一层的协议的工作原理,这无疑是非常耗费时间的极大的降低开发效率,因此前人为了避免这种情况就在应用层和下面四层之间加入了socket层。socket层对下四层做了封装并给开发人员提供了方便使用的接口,开发人员只需要遵循socket的规则去写程序,socket就会帮助我们把程序的数据加上应该有的下四层的头部信息,所以我们无需再为数据的封装操心了。
二、TCP协议的socket使用方法
服务端基本格式:
importsocket
phone=socket.socket() #创建socket对象,默认参数为family=AF_INET(基于网络的套接字家族), type=SOCK_STREAM(使用TCP/IP协议),可以修改
phone.bind(('127.0.0.1',8081)) #服务端绑定IP和端口,方便客户端连接
phone.listen() #监听是否有客户端试图连接
whileTrue:
conn,addr=phone.accept() #建立连接,返回值是一个包含连接对象以及客户端IP、端口元祖的大元祖
whileTrue:try:
data=conn.recv(1024) #接收数据,bytes类型
conn.send(data.upper()) #发送数据,bytes类型
exceptException:breakconn.close()#关闭连接</