在计算机之间使用C ++传输文件

时间:2017-05-07 00:33:00

标签: c++ sockets socket.io

我只是尝试使用C ++将文件从一台计算机发送到另一台计算机。我只与1个客户端进行交互,但代码仍无效。

void runclient(char *ip, char *fpath)
{
char rec[32] = "";
a.connectServer(ip,IPaddress);
printf("Connected to server \n");
a.sendData("FileSend"); a.recvData(rec,32);
a.fileSend(fpath);
printf("Sent\n");
a.sendData("EndConnection");a.recvData(rec,32);
printf("Connection ended \n");
}

关于如何使用C ++轻松发送文件的任何想法? 我需要使用C ++,因为我将来会将它用于实时应用程序。

1 个答案:

答案 0 :(得分:1)

如果您打算使用套接字,那么没有简单的方法可以做到这一点。您必须编写某种形式的通信协议来组织两个对等体之间的信息流。

你做错了几件事:

  1. 您不检查连接是否成功。
  2. 您正在尝试接收阻塞管道上的数据,而不检查是否确实存在要读取的数据。这将挂起您的程序,直到收到任何内容。
  3. 你不在乎你的同伴在说什么。
  4. 您不关心邮件的大小。 TCP是一个流,而不是独立的数据包,来自多个发送请求的数据可以在读取时合并,你必须管理它。
  5. 你没告诉你的同伴文件名是什么,我很确定它应该知道。
  6. 另外,你必须澄清你的问题,究竟什么类型的对象是a?它真的必须成为一个全球性的对象吗?因为那是非常糟糕的做法。