ファイルからデータを読み取り、これを Windows ソケットを使用してサーバーに送信しています。コードは次のとおりです。
//Socket creation and setup code
long Begin;
long End;
char * block;
ifstream myfile;
myfile.open(filepath, ios::in | ios::binary);
Begin = myfile.tellg();
myfile.seekg(0,ios::end);
End = myfile.tellg();
unsigned long size = End - Begin;
int Div = (int)size / 1024;
int Mod = (int)size % 1024;
int len = strlen(name);
send(theSocket,(const char*)&len,sizeof(int),0);
send(theSocket,name,strlen(name),0);
send(theSocket, (const char*)&size, sizeof(unsigned long), 0);
block = new char[1024];
for (int i=0; i<Div; i++)
{
myfile.seekg(i*1024);
myfile.read(block,1024);
cout << block << endl;
send(theSocket,block,1024,0);
}
if (Mod != 0)
{
block = new char[Mod];
myfile.seekg(Div*1024);
myfile.read(block,Mod+1);
send(theSocket,block,Mod,0);
}
delete [] block;
myfile.close();
closesocket(theSocket);
WSACleanup();
私が抱えている問題は、ファイルから にデータを読み込むときにblock
、最後に奇妙な文字がいくつか追加されることです。文字はこのように毎回同じです=> "ýýýý««««««««îþîþ" . 何が問題なのかわかりません。