네트워크 스트림을 사용하여 파일 이름 (예 : "text.txt")을 보내고 파일을 보냅니다. 서버는 이름을 읽고 데이터를 쓰는 쓰기 스트림을 작성하기로되어 있습니다. 서버가 이름을 가져 오기 위해 읽기 명령의 파일에서 이름 + 데이터를 가져 오는 문제. 나는 이것이 불분명하다고 생각한다. 질문은 파일 이름과 파일의 일부 데이터를 가져옵니다. 서버 녹화네트워크 스트림을 사용하는 동기화 논리
ASCIIEncoding asci = new ASCIIEncoding();
TcpClient clientSocket = new TcpClient(textBox2.Text, 8880);
NetworkStream networkStream = clientSocket.GetStream();
byte[] b = asci.GetBytes(s);//s is the name of the file
networkStream.Write(b, 0, b.Length);
networkStream.Flush();
while(true)
{
file = fileStream.Read(fileBuffer,0,fileBuffer.Length);
networkStream.Write(fileBuffer,0,file);
if(file == 0) break;
}
코드 : 파일 이름을 전송 코드는 데이터를 파일. 이름 및 데이터를
byte [] buffer2 = new byte[1];
String filename = "";
ASCIIEncoding asci = new ASCIIEncoding();
while (true)
{
int k = networkStream.Read(buffer2, 0, buffer2.Length);
filename = filename+asci.GetString(buffer2, 0, k);
if (k == 0) break;
}
using (Stream fileStream = File.OpenWrite("C:/Users/Laptop/Documents/" + filename))
{
while (true)
{
thisRead = networkStream.Read(dataByte, 0, blockSize);
fileStream.Write(dataByte, 0, thisRead);
if (thisRead == 0) break;
}
감사합니다. 나는 내가 어떻게 말을하거나 문제를 설명 할 줄 몰랐다.
while (x! = y) {/*...*/}와 while (true) {/*...*/ if (x == y) 휴식;}을 바꿀 수 있습니다. 이렇게하면 코드의 가독성이 향상됩니다. – PVitt