sockets - 通过网络传输文件: Send from client or from server?

标签 sockets client server file-transfer

我目前正在研究一种客户端服务器解决方案,以通过套接字网络连接将文件传输到另一台计算机。对于整个客户端服务器,我还是一个新手,因此有以下问题-公认是非常基本的-问题:

对于文件传输,如果我将文件从客户端发送到服务器或从服务器发送到客户端,这有什么区别吗?

任何对此的合格见解将不胜感激!

最佳答案

For the file transfer, does it make any difference if I am sending the file from a client to a server or from a server to a client?



基本上,没有关系。建立连接后,您就可以自由地双向发送数据了。尽管您必须考虑到服务器不会接受发送给它的数据,除非它明确地从套接字读取数据。

更笼统地说,对于自制的数据传输实现,服务器和客户端完全是任意的。如果将其归结为最简单的概念,那么您只是在打开一个套接字并在一侧写入数据,而在另一侧则从另一个套接字读取数据。

您可能选择实现一个能够连接其他客户端(P2P)并来回发送文件的客户端程序。在这种情况下,您可以将当前正在发送文件的程序称为“服务器”,而“客户端”是当前正在接收文件的程序。

或者,您可以实现两个程序,一个用于客户端,一个用于服务器。您的服务器将监听连接,客户端将决定何时要连接到服务器。

请记住,连接存在网络限制。如果正在监听连接的程序位于防火墙后面,则必须确保转发正确的端口。如果要在局域网内连接计算机,则可能无需担心。

关于sockets - 通过网络传输文件: Send from client or from server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28771061/

相关文章:

java - 如何在不关闭线程的情况下中断被某些套接字 IO 操作阻塞的线程

http - 为什么我的 HTTP/1.0 GET 请求返回 OK 但没有正文内容?

C# 分隔 TCP 消息

java - 套接字中的 UnknownHostException

java - 如何使用套接字 channel 通过网络发送图像文件

sql-server - SQL Server 代理在 SQL Server 2014 Express 中不工作

git - 当 GitHub 上的 master 分支更新时,刷新 ubuntu 服务器上的存储库。我怎样才能做到这一点?

c# - 如何修复Server 2016上的定位错误?

java:关闭客户端套接字重置服务器套接字

python - Kubernetes Python API 客户端 : execute full yaml file