Просмотр полной версии : C# Socket Send
ShkiperLol
12.06.2010, 14:42
Есть Два масиива байтов byte
Мне их нужно сравнить, если какойто из байтов разный то нужно скинуть по Socket его номер и данные. Как это лучше сделть я не знаю.
Пожалуйста, кодом! C# ;)
разница у вас в каком смысле.
ShkiperLol
12.06.2010, 15:23
Например
if(byte1[i]!=byte2[i])
{
}
i - номер ; byte1[i] - данные
akimov_aleks
12.06.2010, 15:33
так они у тебя уже есть. и i - номер ; byte1[i] - данные
если не равны то записывай куда надо...
public static Soket Connect1(string host, int port)
{
IPAddress[] IPs = Dns.GetHostAddresses(host);
Socket s = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp);
Console.WriteLine("Establishing Connection to {0}",
host);
s.Connect(IPs[0], port);
Console.WriteLine("Connection established");
return s;
}
public static void send(Soket s,byte[] a,byte [] b)
{
s.Send(a.Where((aj,j)=>aj!=b[j]).ToArray());
}
что-то в этом духе
ShkiperLol
12.06.2010, 15:36
допустим я скидую данные в двухмерный массив int[0][0] - [номер][данные]
Как мне потом его скинуть?!
s.Send(a.Where((aj,j)=>aj!=b[j]).ToArray());
Bred :D
если ты "скидуешь" данные в двумерный массив тебе в любом случае придётся либо приводить его к одномерному, либо использовать сериализацию.
Например
if(byte1[i]!=byte2[i])
{
// а тут что??
}
i - номер ; byte1[i] - данные
какой вопрос такое и решение
ShkiperLol
12.06.2010, 16:35
Главная проблема в том:
Номер - это int
Данные - это byte
И как мне их увязать и скинуть я не знаю.
ShkiperLol
12.06.2010, 18:15
help pliz
M_script_
12.06.2010, 18:21
Главная проблема в том:
Номер - это int
Данные - это byte
И как мне их увязать и скинуть я не знаю.
Непонятно, в чем проблема?
Так и отправляй, номер(4байта) и данные(1байт)
ShkiperLol
12.06.2010, 18:26
Вот проблема как передать ?
Два массива отправлять ?
омг. погугли c# socket, почитай статьи. или доставляет сидеть и таращиться в страницу, ожидая готового кода.
ShkiperLol
12.06.2010, 18:56
Я не знаю как скинуть двух мерный массив! И я не нашел!
Непонятно, в чем проблема?
Так и отправляй, номер(4байта) и данные(1байт)
читать надо не по диагонали
[Serializable]
class DistArr
{
[Serializable]
class Pair
{
public byte first;
public byte second;
}
private Dictionary<int, Pair> distArr;
public DistArr(byte[] a, byte[] b)
{
for (int i = 0; i < a.Length; i++)
{
if (a[i] != b[i])
{
distArr.Add(i, new Pair
{
first = a[i],
second = b[i]
});
}
}
}
}
Сериализуй и скидывай, на другой стороне принимаешь и десериализуешь.
-----------------
http://msdn.microsoft.com/ru-ru/library/ms233836%28VS.90%29.aspx
Я не знаю как скинуть двух мерный массив! И я не нашел!
Раззуй глаза, выше писали что нада сериализовать.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot