04day学习---网络编程(网络通信过程TCP)

一、TCP与UDP的区别
1、UDP通信开始前不需要建立链接,只需要发送数据,类似于写信的模式、不稳定、但是因为不用链接所以速度快一点

2、TCP通信开始前需要先建立联系,完之后才可以发送数据,类似打电话模式、稳定、但要慢一点、web服务器一般使用这个协议

二、TCP通信过程
1、流程图
在这里插入图片描述
2、服务器

  • 创建一个套接字(一般为主动套接字)-----》买手机
  • 绑定IP和端口号-------》插卡
  • 监听(将主动变被动)----------》设置为外音有信息可听到
  • 接收请求---------------------------》等信息准备接听

3、客户端

  • 创建套接字
  • 链接-------》打电话

三、TCP服务器
1、简单服务器搭建:

#coding=utf-8
from socket import * 
# 创建套接字,网络连接,TCP
serverSocket = socket(AF_INET, SOCK_STREAM) 
# 绑定本地信息 
address = ('', 8000)
serverSocket.bind(address) 
# 使⽤socket创建的套接字默认的属性是主动的,使⽤listen将其变为被动的,这样就可以接收别⼈的链接了,设置5个
serverSocket.listen(5) # 如果有新的客户端来链接服务器,那么就产⽣⼀个新的套接字专⻔为这个客户端服务器 这个可以开启5个
# newSocket⽤来为这个客户端服务,serverSocket就可以省下来专⻔等待其他新客户端的链接 ----类似于一个号码可以转接客服
newSocket, clientAddr = serverSocket.accept() 
# 接收对⽅发送过来的数据,最⼤接收1024个字节 
recvData = newSocket.recv(1024) 
print ('接收到的数据为:',recvData )# 发送⼀些数据到客户端
newSocket.send("thank you !") # 关闭为这个客户端服务的套接字,只要关闭了,就意味着为不能再为这个客户端服务了,如果还需要服务,只能再次重新连接 
newSocket.close() # 关闭监听套接字,只要这个套接字关闭了,就意味着整个程序不能再接收任何新的客户端的连接 
serverSocket.close()

四、客户端
1、简单构建

#coding=utf-8 
from socket import * 
# 创建socket 
clientSocket = socket(AF_INET, SOCK_STREAM) 
# 链接服务器 
serAddr = ('192.168.1.102', 8000) #ip需要运行客户端查询端口自己设置
clientSocket .connect(serAddr) 
# 提示⽤户输⼊数据 
sendData = raw_input("请输⼊要发送的数据:") 
clientSocket .send(sendData.encode("gb2312")) 
# 接收对⽅发送过来的数据,最⼤接收1024个字节 
recvData = clientSocket .recv(1024)
print('接收到的数据为:',recvData )
# 关闭套接字 
clientSocket .close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值