在单独的连接上发送文件

时间:2014-07-02 18:57:13

标签: unix-socket

我有一个服务器程序,为每个传入连接生成一个线程。然后,该线程通过接收并发送响应来处理请求。对于某些类型的连接,我必须首先使用文件然后使用文本响应进行响应。

问题在于,如果我在发送文件后发送文本响应,则响应会写入文件内部,因为客户端无法知道文件的结束位置和响应的位置。因此,我需要在发送文件后关闭连接,然后在其他连接上发送响应,或者,在单独的连接上发送文件,然后在当前连接上发送响应。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

使用FTP使用的技术将数据连接与控制连接分开。服务器开始监听临时端口 - 操作系统将为其分配一个未使用的端口。它将此端口号发送到主连接上的客户端。然后客户端连接到临时端口,服务器在这个新连接上发送文件。

如果您需要同时处理多个套接字,可以使用select()epoll()等待其中任何一个的数据。

相关问题