IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Python用TCP协议实现客户端发送数据并将接收端收到的的数据导入excel表格中 -> 正文阅读

[网络协议]Python用TCP协议实现客户端发送数据并将接收端收到的的数据导入excel表格中

作为小白,这篇博客是记录尝试了3天,尝试了3,4种办法,写了六七个版本才完成的一段程序(虽然在很多大佬面前只是小菜一碟)。然后想要告诉自己不要被一次又一次的失败打到,通往成功的道路不止一条,这种方法不行就换一种,一种一种地试,在n次失败之后最终会找到成功的路的,最重要的是千万不要在中途放弃了!!!

首先先了解一下什么是TCP协议

TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信。

(涉及的不多,大概了解一下即可)

好了,言归正传,我们来看一下怎么实现吧。

首先,我们得先上PyPI · The Python Package Index下载第三方开源模块xlwt和xlrd。

下载完成后 打开windows命令符窗口,输入 pip install xlwt回车。

安装xlwt,xlrd也是同样操作。

前期都准备好了,可以开始写代码了。

#引入socket、xlwt、xlrd
import socket,time
import xlwt
import xlrd

#本地信息
HOST,PORT ='',4000

#创建socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#绑定
s.bind((HOST,PORT))

#设置服务对象数
s.listen(5)

#等待用户连接
print('Waiting for connection...')

# 使用socket创建的套接字默认的属性是主动的,
# 使用listen将其变为被动的,这样就可以接收别人的链接了
listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

#绑定
listen_socket.bind((HOST, 5000))
listen_socket.listen(5)

#创建一个workbook 设置编码
#增加一页excel表格并命名

#自定义表头,括号对应(行,列,值)[注意行和列都是从0开始的]
#将表格保存在设置好的路径中

#监听端口,若有客户端连接上了就打印 Accept new connection from client
workbook = xlwt.Workbook(encoding = 'utf-8')
worksheet = workbook.add_sheet('test1')

worksheet.write(0,0,'d1')
worksheet.write(0,1,'d2')
worksheet.write(0,2,'d3')
worksheet.write(0,3,'d4')
workbook.save(r"C:\Program Files\excel_test.xls")
i=0

n=1

sock,addr = s.accept()
print('Accept new connection from client')


#接收并打印data(在服务端上显示)
while True:
? ? data = sock.recv(1024).decode()
? ?print(data)
? ??
#打开已创建好的excel
? ? excel_path='C:\Program Files\excel_test.xls'
? ? rbook = xlrd.open_workbook(excel_path,formatting_info=True)
? ??
#写入数据(括号里对应的是行数,列数,要写入的东西)
#这里让列数自增,实现自动输入

#每写一次保存一次
#加个判断,一行写满四个数据就换行
? ? worksheet.write(n,i,data)
? ? i+=1
? ? workbook.save(r"C:\Program Files\excel_test.xls")
? ? if(i%4==0):
? ? ? ? n+=1
? ? ? ? i=0

#关闭socket,结束进程
sock.close()print('Connection from %s:%client closed.'% addr)

以上就是详细代码以及注释,那么我们搭个简单的客户端来实践一下吧~

以下就是客户端的代码

?import socket
# 1.创建socket
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2. 链接服务器
server_addr = ("192.168.50.32", 4000)
tcp_socket.connect(server_addr)

# 3. 发送数据
while True:
? ? send_data = input("请输入要发送的数据:")
? ? tcp_socket.send(send_data.encode("gbk"))
? ? if send_data=='quit':
? ? ? ? break
? ??
# 4. 关闭套接字
tcp_socket.close()

?运行一下看一下效果

?

?

?

搞定。

注意事项:这个表格是一次性的,再用这段程序的时候, 上一次的数据会被覆盖掉。每次生成表格都给重命名即可解决。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 13:25:46  更:2021-10-29 13:25:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/3 10:44:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码