1.TCP传输文件
1.1 继续完成客户端收发数据的代码
- 1.当服务器端同意接受文件时,我们在客户端循环读文件,并将读取到的数据发送到服务器端;并输出当前传送的百分比;
int main()
{
... ...
struct FileInfo
{
char file_name[50];
int file_len;
};
FileInfo fileinfo;
strcpy_s(fileinfo.file_name, 50, "CMake Practice.pdf");
FILE* fp = 0;
fopen_s(&fp, "CMake Practice.pdf", "rb");
int no = fileno(fp);
fileinfo.file_len = filelength(no);
int n_send_size = ::send(client_socket, (const char*)&fileinfo, sizeof(fileinfo), 0);
if(n_send_size <= 0)
cout << "error code: " << WSAGetLastError() << endl;
else
{
bool b_flag = false;
int n_recv_size = ::recv(client_socket, (char*)&b_flag, sizeof(bool), 0);
if(n_recv_size <= 0)
cout << "error code: " << WSAGetLastError() << endl;
else if(b_flag == true)
{
char szBuffer[4096*64