PDA

View Full Version : سوال: مشکل در برنامه تحت شبکه (تبدیل بایت به استرینگ )



Collector
جمعه 28 بهمن 1390, 18:43 عصر
سلام

من یک برنامه تحت شبکه نوشتم که اطلاعات را به برنامه سرور میفرستد.
وقتی من با این کد اطلاعات را میخوانم و میخواهم تعداد کاراکتر آنرا بخوانم تعداد را بر حسب بایت یعنی 4096 نشان میدهد. من چطوری میتونم بایت را تبدیل به استرینگ کنم.

listBox1.Items.Add(Convert.ToString(System.Text.En coding.ASCII.GetString(receiveBuffer).ToString())) ;

MessageBox.Show(Convert.ToInt32(SFW.Length.ToStrin g()) + " 2");

Collector
جمعه 28 بهمن 1390, 19:07 عصر
در این کد هم هر کاری کردم نتوانستم تعداد کاراکتر را در بیاورم.

byte[] recvBuffer;
recvBuffer = new Byte[4000];
FormatBuffer(recvBuffer,"alireza");
System.Text.UTF8Encoding Q = new System.Text.UTF8Encoding();
textBox1.Text = Q.GetString(recvBuffer).Length.ToString();


static public void FormatBuffer(byte[] dataBuffer, string message)
{
byte[] byteMessage = System.Text.Encoding.ASCII.GetBytes(message);
int index = 0;

// First convert the string to bytes and then copy into send buffer
while (index < byteMessage.Length)
{
for (int j = 0; j < dataBuffer.Length; j++)
{
// Make sure another byte of data buffer became zero
if (index >= byteMessage.Length)
{
dataBuffer[j] = 0;
}
else
{
dataBuffer[j] = byteMessage[index];
index++;
}
}
}
}

REZAE2011
جمعه 28 بهمن 1390, 20:39 عصر
سلام این قطعه کد از http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx امتحان کن:
int bytes = 0;
// The following will block until te page is transmitted.
do
{
bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);//تعداد بایت های دریافتی از سرور مشخس می شود
page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);//تبدیل ارایه بایت به استرینگ
}
while (bytes > 0);