python网路编程之socket模块1

网络编程bs和cs框架如果有些公司开发出来的软件没人要安装app,就不需要开发出来app了,只开发出来一个网站,用浏览器浏览就行了。软件:客户端:CS架构,Client -->Server(单机的没有server,不需要网络) 浏览器:BS架构,Browser --> Server如何实现相互通信:相互通信本质发送01010101 交换机作用...
摘要由CSDN通过智能技术生成

网络编程bs和cs框架

如果有些公司开发出来的软件没人要安装app,就不需要开发出来app了,只开发出来一个网站,用浏览器浏览就行了。

软件:

  • 客户端:CS架构,Client     --> Server(单机的没有server,不需要网络)
  • 浏览器:BS架构,Browser --> Server

 如何实现相互通信:

  • 相互通信本质发送01010101
  • 交换机作用
  • 通过ipconfig查看自己的内网IP
  • 公网IP,付费

python中socket模块帮助完成网络通信,下面编写一小段代码介绍一下,python中是如何网络通信的。

用此可以验证用户名和密码是否正确

  1. 先执行server.py,等待有人连接服务端
  2. 再执行范冰冰.py,范冰冰连接到服务端,发送给服务端内容为'你好,我是范冰冰'
  3. 服务端接收范冰冰的消息后打印内容
  4. 服务端发给范冰冰内容为stop
  5. 范冰冰断开和服务端的连接
  6. 服务端关闭服务

socket注意事项:退出的时候,服务器和客户端都要退出,否则可能出现错误。

#文件名:server.py
import socket
# 创建socket对象
server = socket.socket()

# 绑定IP和端口,只有服务端才绑定IP和端口
server.bind(('192.168.0.105',8000))

# 后面最多有5个请求 排队等候 listen需要的参数(backlog:积压的工作)
server.listen(5) #这个客户端连接之后,后面还可以有5个客户端排队,再有一个客户端连接的时候,就无法排队了;所以在第7位的时候才报错。

# 等待客户端来连接,从这里一启动,程序不会结束,accept会阻塞住,一直等待客户端来连接,一连接就立刻往下执行;
# 如果没人来连接就傻傻地等待。
# server.accept()是个元组,这个元组永远有两个元素,
# 一个是连接对象(比如两个地址之间要有一条路,通过这条路来传输东西),通过这个对象传输信息,
# 另一个是客户端的地址信息
conn,addr = server.accept()  #**************************在此阻塞了,只要有人来连接,程序就往下走,开始通信。

# conn.recv()通过那条路去获取信息,参数bufsize设置为1024的话,一次最多获取1024字节
# 1024表示:服务端通过马路获取数据时,一次性最多拿取1024字节
# 如果客户端一直不通过client.send()发送消息,server一直在此等候消息
data = conn.recv(1024) # 待会范冰冰会过来连接发数据-->'你好'
print(data.decode('utf-8'))
# 网络传输时都是通过bytes(字节)传输的,
# 服务端通过连接对象(马路)给客户端回复了一个消息
conn.send(b'stop') # 范冰冰给服务器发送一个'你好',服务器回复一个‘stop’

# conn.close() 把马路用炸弹炸开,断开连接
conn.close()

# 服务断开,不给任何人提供服务了
server.close()

 

# 文件名:范冰冰.py

import socket

client=socket.socket()

# 有一个人来连接我的服务器,相当于有个人向服务器修了一条马路
# 这里也存在阻塞,如果服务端没有开启,范冰冰就连接不上,一直在这等待,直到连接成功才会继续往下走。
client.connect(('192.168.0.105',8000))
client.send('你好,我是范冰冰'.encode('utf-8'))

# 范冰冰等待服务端的回复消息
data=client.recv(1024)
print(data.decode('utf-8'))

# 范冰冰收到消息后,拿了一个炸药包把自己通向服务端的路炸掉了,关闭自己
client.close()

 

 

python网络编程之socket模块2(开发一个聊天工具)

# 服务端.py
import socket

s
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值