如何实现上传/下载文件
最近闲的没事干,正好手头有台服务器,就想写个无线聊天的小聊天室去网上找了一圈,发现都是局域网的,就放弃从网上找了
想法是有了,那就开干被{:10_256:}
于是我想了一下总体的思路,大概的在这里https://fishc.com.cn/thread-222326-1-1.html
然后我花了点时间把登陆注册和一些基本的页面写好了(tkinter)现在改实现无线传输了
我这里还是简述一下我的思路吧:
我的想法是通过客户端上传到我的服务器聊天内容(保存在服务器本地),然后在实时下载获取内容,这样就可以实现无线通讯了(听起来是不是特别简单)】
但事实是,我第一步就受挫了{:10_266:}
因为我对网络基本上是一窍不通,就不知道怎么实现在我的服务器上上传东西
是用爬虫还是什么吗?
还是说要在服务器端挂一个python程序来检测访问什么的
还是说需要弄一个html网页,然后提交上去
……
现在在这里请较各位大佬,有没有懂的,提供一下思路{:10_254:} 求解答 顶 本帖最后由 suchocolate 于 2022-12-22 23:55 编辑
无线,有线,你这程序还要求传输介质?
不用爬虫,就用socket通信就行。
只要程序是分布式的,处理信息的服务器放局域网就是局域网版聊天室,放公网就是公网聊天室,只是公网IP和私网IP的区别,建议还是直接抄别人写好的改改。
b站也很多讲解的https://search.bilibili.com/all?keyword=python%E5%86%99%E8%81%8A%E5%A4%A9%E5%AE%A4&from_source=webtop_search&spm_id_from=333.1007&search_source=5
suchocolate 发表于 2022-12-22 23:48
无线,有线,你这程序还要求传输介质?
不用爬虫,就用socket通信就行。
没太听懂,我需要在服务器里放一个server端使用socket来接受/发送消息? Mike_python小 发表于 2022-12-23 07:35
没太听懂,我需要在服务器里放一个server端使用socket来接受/发送消息?
对,你去b站看吧,原理讲的也透彻。 你这个要根据情况来好吧,想要简单点不?
我告诉你一个方法:诶,你可以放弃
不逗你了,你等我一下,我现在就动身给你写代码!
编程追风梦 发表于 2022-12-23 10:05
你这个要根据情况来好吧,想要简单点不?
我告诉你一个方法:诶,你可以放弃
{:10_257:} Mike_python小 发表于 2022-12-23 10:06
放弃了之后会很简单,都不用做
有道理诶 Mike_python小 发表于 2022-12-23 10:06
世上无难事,只要肯放弃{:10_256:} tommyyu 发表于 2022-12-23 10:55
世上无难事,只要肯放弃
多么震碎人心的一句话{:10_306:} 用数据库不就好了么,为啥要存成文件的类型? 用 python 的 web 框架,你连客户端都不要写了,直接网页就能用了。 实现无线聊天的小聊天室需要用到客户端和服务器之间的网络通信。下面是一个可能的思路:
1、客户端通过socket连接到服务器端。
2、在客户端上,用户输入聊天内容后,通过socket将内容发送到服务器端。
3、服务器端接收到聊天内容后,可以保存到本地,也可以将其广播给其他客户端。
4、客户端通过socket接收服务器端发送过来的聊天内容,并将其显示在聊天界面上。
这样,客户端和服务器之间就可以实现双向通信了。
下面是一个简单的Python代码示例,可以作为参考:
import socket
import threading
# 定义服务器地址和端口号
SERVER_ADDRESS = '127.0.0.1'
SERVER_PORT = 12345
# 定义客户端socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect((SERVER_ADDRESS, SERVER_PORT))
# 定义接收消息的函数
def receive_message():
while True:
# 接收服务器发送的消息
message = client_socket.recv(1024).decode('utf-8')
print(message)
# 创建一个接收消息的线程
receive_thread = threading.Thread(target=receive_message)
receive_thread.start()
while True:
# 获取用户输入的消息
message = input()
# 发送消息到服务器
client_socket.sendall(message.encode('utf-8'))
在这个示例中,客户端通过socket连接到服务器,并创建了一个接收消息的线程来实现实时接收服务器发送过来的消息。用户可以通过input函数输入消息,并将其发送到服务器。服务器接收到消息后,可以将其发送给其他客户端或者保存到本地。
当然,这只是一个简单的示例,实际的应用需要考虑更多的细节和安全性问题。
页:
[1]