私はc#クライアントとサーバーアプリケーションに不慣れで、ファイルアップロードクライアントとサーバーアプリケーションに取り組んでいます。
クライアントアプリケーションからサーバーにファイル名とファイルデータを正常にアップロードできます。しかし、ファイルアップロードクライアントが自分の名前を入力し、送信ボタンをクリックしたときにファイル名とファイルデータと一緒に情報を送信できるようにする新しいテキストボックスを実装しようとすると。
クライアントアプリケーション。
/* file name and file length */
byte[] fName = Encoding.UTF8.GetBytes(fileName);
byte[] fNameLen = BitConverter.GetBytes(fileName.Length); // length of file name
clientData = new byte[4 + fileName.Length];
System.Diagnostics.Debug.WriteLine("fName " + fName.Length);
System.Diagnostics.Debug.WriteLine("fNamelen " + fNameLen.Length);
fNameLen.CopyTo(clientData, 0);
fName.CopyTo(clientData, 4);
/* author name and author name length */
byte[] aName = Encoding.UTF8.GetBytes(textBox2.Text);
byte[] aNameLen = BitConverter.GetBytes(textBox2.Text.Length);
System.Diagnostics.Debug.WriteLine("aName " + aName.Length);
System.Diagnostics.Debug.WriteLine("aNamelen " + aNameLen.Length);
authorData = new byte[9 + textBox2.Text.Length];
aNameLen.CopyTo(authorData, 5);
aName.CopyTo(authorData, 9);
サーバーアプリケーション
/* retriving of file name */
System.Diagnostics.Debug.WriteLine("Error 1");
fNameLen = BitConverter.ToInt32(state.buffer, 0);
System.Diagnostics.Debug.WriteLine("Error 2 fNameLen " + fNameLen);
string Filename = Encoding.UTF8.GetString(state.buffer, 4, fNameLen);
System.Diagnostics.Debug.WriteLine("Error 3");
System.Diagnostics.Debug.WriteLine("filename length " + fNameLen);
receivedPath = @"C:\testfiles\" + Filename;
System.Diagnostics.Debug.WriteLine("bytesREad1 " + bytesRead);
System.Diagnostics.Debug.WriteLine(receivedPath);
/* retriving of author name */
aNameLen = BitConverter.ToInt32(state.buffer, 5);
System.Diagnostics.Debug.WriteLine("Error 4");
System.Diagnostics.Debug.WriteLine("error 5");
System.Diagnostics.Debug.WriteLine("author name length " + aNameLen);
string authorName = ASCIIEncoding.ASCII.GetString(state.buffer, 9, aNameLen);
System.Diagnostics.Debug.WriteLine("Error 6");
System.Diagnostics.Debug.WriteLine("author name " + authorName);
System.Diagnostics.Debug.WriteLine("author name length " + aNameLen);
出力ウィンドウと太字で示されたエラー:
- エラー1
- エラー2fNameLen12
- エラー3
- ファイル名の長さ12
- bytesREad1 82
- C:\ testfiles \ Test1122.txt
- エラー4
- エラー5
- 著者名の長さ829715301
- タイプ'System.ArgumentOutOfRangeException'の最初のチャンスの例外がmscorlib.dllで発生しました
前もって感謝します。