جدیدترین سوالات





سوال های تصادفی





جستجو در بانک سوالات
در این قسمت می توانید بخشی از متن سوال را وارد نموده و به دنبال سوال مورد نظر خود بگردید:

بخشی از متن سوال:

spilit file

سلام من میخواهم فایلی رو تو شبکه تو c# ارسال کنم اما حجمش زیاده میخوام فایل رو به بافر های کوچک تقسیم کنم و بعد ارسال کنم چطور میتونم این کارو بکنم؟



0
امتیاز

جوابی برای این سوال در دست نیست!


ازین پس می توانید به کاربرانی که دوست دارید هدیه بدهید! کافیست بر روی علامت    در کنار تصویر آنها کلیک کنید!

1


جواب برای این سوال ثبت شده است!

تازه ترین


جواب ها رو اول نشون بده

پرامتیاز ترین


جواب ها رو اول نشون بده

1 جواب برای این سوال ثبت شده!

چینش بر اساس زمان ثبت


چینش بر اساس امتیاز



56
249
37

.:.soja.:.

شاید این کد بتونه کمکت کنه:
برای سمت کلاینت:


 string IPAddress = "";  
int Port = 500;

string Filename = @"C:\Users\Ben\Desktop\TT.zip";


int bufferSize = 1024;
byte[] buffer = null;
byte[] header = null;


FileStream fs = new FileStream(Filename, FileMode.Open);
bool read = true;

int bufferCount = Convert.ToInt32(Math.Ceiling((double)fs.Length / (double)bufferSize));



TcpClient tcpClient = new TcpClient(IPAddress, Port);
tcpClient.SendTimeout = 600000;
tcpClient.ReceiveTimeout = 600000;

string headerStr = "Content-length:" + fs.Length.ToString() + "\r\nFilename:" + @"C:\Users\Administrator\Desktop\" + "test.zip\r\n";
header = new byte[bufferSize];
Array.Copy(Encoding.ASCII.GetBytes(headerStr), header, Encoding.ASCII.GetBytes(headerStr).Length);

tcpClient.Client.Send(header);

for (int i = 0; i < bufferCount; i++)
{
buffer = new byte[bufferSize];
int size = fs.Read(buffer, 0, bufferSize);

tcpClient.Client.Send(buffer,size,SocketFlags.Partial);

}

tcpClient.Client.Close();

fs.Close();





برای سمت سرور


 int Port = 500;  

TcpListener listener = new TcpListener(IPAddress.Any, Port);
listener.Start();


Socket socket = listener.AcceptSocket();

int bufferSize = 1024;
byte[] buffer = null;
byte[] header = null;
string headerStr = "";
string filename = "";
int filesize = 0;


header = new byte[bufferSize];

socket.Receive(header);

headerStr = Encoding.ASCII.GetString(header);


string[] splitted = headerStr.Split(new string[] { "\r\n" }, StringSplitOptions.None);
Dictionary<string, string> headers = new Dictionary<string, string>();
foreach (string s in splitted)
{
if (s.Contains(":"))
{
headers.Add(s.Substring(0,s.IndexOf(":")), s.Substring(s.IndexOf(":") + 1));
}

}
//Get filesize from header
filesize = Convert.ToInt32(headers["Content-length"]);
//Get filename from header
filename = headers["Filename"];

int bufferCount = Convert.ToInt32(Math.Ceiling((double)filesize / (double)bufferSize));


FileStream fs = new FileStream(filename, FileMode.OpenOrCreate);

while(filesize > 0)
{
buffer = new byte[bufferSize];

int size = socket.Receive(buffer,SocketFlags.Partial);

fs.Write(buffer,0,size);

filesize -= size;
}


fs.Close();
0
امتیاز




جواب تو چیه؟
userImage
کاربر میهمان




پرسش سوال جدید :: تبلیغات در سوال و جواب :: گروه های سوال و جوابی

تمامی حقوق مادی و معنوی، متعلق به وب سایت سوال جواب (soja.ai) و تیم مدیریتی آن می باشد.

طراحی و اجرا : گروه مشاوران فناوری اطلاعات

پاسخ های موجود در سایت توسط کاربران سایت ثبت می شود،
سایت سوال و جواب هیچ مسئولیتی در قبال صحت و محتوی پاسخ ها ندارد، هرچند تا حد امکان نظارت بر محتوی آنها صورت می گیرد.