TCP 套接字做一个文件传输和聊天的程序,该怎么处理
TCP 套接字做一个文件传输和聊天的程序
TCP 套接字做一个文件传输和聊天的程序,文件传输和聊天开一个线程可以吗,如何接收
------解决方案--------------------
两条线程~ 聊天和传送文件互不影响~
文件传送~分块传送和读写~
------解决方案--------------------
文件传输肯定是要单独开线程的(不要让UI线程和工作者线程混在一起).
你可以定义一组命令来控制整个文件传输的流程,从Sender到Receiver的流程大致是:
1. CMD_BEGIN_TRANSFER : Sender通知Receiver文件传输开始
2. CMD_TRANSFERRING : 文件的分块传输(具体实现看你用什么方式,如果是顺序的传,直接一个循环即可;如果需要支持断点续传就不能这么做)
3. CMD_FINISH_TRANSFER : 文件传输结束
当然,针对传输中断或者其他意外情况,可以定义另外的命令。
聊天的功能最好用UDP做。
http://download.****.net/source/2053366
这是我写的一个文件传输的程序,你可以参考下。
------解决方案--------------------
文件传输单开一个线程,如果传输大文件最好开多个线程,每个线程发送一部分
------解决方案--------------------
可以开一个线程,但建议开两个线程。
开一个线程的话,在没有聊天信息的时候,发送文件,有聊天信息的时候,先发送聊天信息。
发送文件的消息和聊天的消息定义不同的消息头
在每次发送的时候,都要先查看是否有聊天信息需要发送
这样就可以解决这个问题了
TCP 套接字做一个文件传输和聊天的程序,文件传输和聊天开一个线程可以吗,如何接收
------解决方案--------------------
两条线程~ 聊天和传送文件互不影响~
文件传送~分块传送和读写~
------解决方案--------------------
文件传输肯定是要单独开线程的(不要让UI线程和工作者线程混在一起).
你可以定义一组命令来控制整个文件传输的流程,从Sender到Receiver的流程大致是:
1. CMD_BEGIN_TRANSFER : Sender通知Receiver文件传输开始
2. CMD_TRANSFERRING : 文件的分块传输(具体实现看你用什么方式,如果是顺序的传,直接一个循环即可;如果需要支持断点续传就不能这么做)
3. CMD_FINISH_TRANSFER : 文件传输结束
当然,针对传输中断或者其他意外情况,可以定义另外的命令。
聊天的功能最好用UDP做。
http://download.****.net/source/2053366
这是我写的一个文件传输的程序,你可以参考下。
------解决方案--------------------
文件传输单开一个线程,如果传输大文件最好开多个线程,每个线程发送一部分
------解决方案--------------------
可以开一个线程,但建议开两个线程。
开一个线程的话,在没有聊天信息的时候,发送文件,有聊天信息的时候,先发送聊天信息。
发送文件的消息和聊天的消息定义不同的消息头
在每次发送的时候,都要先查看是否有聊天信息需要发送
这样就可以解决这个问题了