EhsanTC
شنبه 04 خرداد 1387, 20:59 عصر
سلام
مي خوام يه remote procedure call بنويسم كه تابعي براي جمع 2 عدد را شبيه سازي كنه اما يه مشكل وجود داره اون هم اينه كه فكر مي كنم در هنگام تبديل stream به []byte دچار مشكل هستم.در سمت سرور با اين استثنا مواجه مي شوم
unable to read beyond the end of stream
كدمم هم اينه
public static int Add(int val1, int val2, IPEndPoint server)
{
byte[] bytedValues = new byte[8],
temp = new byte[4],
result = new byte[4];
//a byte buffer for values
MemoryStream BufferOfValues = new MemoryStream();
BinaryWriter bw = new BinaryWriter(BufferOfValues);
bw.Write(val1); //convert val1 to byte
//add byted value1 to the buffer
bw.Write(val2); //convert val2 to byte
//add byted val2 to the buffer
//put bytes from binary stream in an array
bytedValues = BufferOfValues.ToArray();
Socket remoteServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
remoteServer.SendTo(bytedValues,server);
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); //create new IPEndPoint for recive sender
EndPoint remoteInformation = (EndPoint) sender; //informations
remoteServer.ReceiveFrom(temp, ref remoteInformation); //recivie informations and put it to the
//temp array
return BitConverter.ToInt32(temp, 0);
}
اگه مي شه در مورد قرار دادن چندين int داخل يك []byte بدون از دست دادن اطلاعات توضيحي بديد.با تشكر
مي خوام يه remote procedure call بنويسم كه تابعي براي جمع 2 عدد را شبيه سازي كنه اما يه مشكل وجود داره اون هم اينه كه فكر مي كنم در هنگام تبديل stream به []byte دچار مشكل هستم.در سمت سرور با اين استثنا مواجه مي شوم
unable to read beyond the end of stream
كدمم هم اينه
public static int Add(int val1, int val2, IPEndPoint server)
{
byte[] bytedValues = new byte[8],
temp = new byte[4],
result = new byte[4];
//a byte buffer for values
MemoryStream BufferOfValues = new MemoryStream();
BinaryWriter bw = new BinaryWriter(BufferOfValues);
bw.Write(val1); //convert val1 to byte
//add byted value1 to the buffer
bw.Write(val2); //convert val2 to byte
//add byted val2 to the buffer
//put bytes from binary stream in an array
bytedValues = BufferOfValues.ToArray();
Socket remoteServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
remoteServer.SendTo(bytedValues,server);
IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); //create new IPEndPoint for recive sender
EndPoint remoteInformation = (EndPoint) sender; //informations
remoteServer.ReceiveFrom(temp, ref remoteInformation); //recivie informations and put it to the
//temp array
return BitConverter.ToInt32(temp, 0);
}
اگه مي شه در مورد قرار دادن چندين int داخل يك []byte بدون از دست دادن اطلاعات توضيحي بديد.با تشكر