Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   C# Socket Send (https://forum.antichat.xyz/showthread.php?t=211030)

ShkiperLol 12.06.2010 14:42

C# Socket Send
 
Есть Два масиива байтов byte
Мне их нужно сравнить, если какойто из байтов разный то нужно скинуть по Socket его номер и данные. Как это лучше сделть я не знаю.

Пожалуйста, кодом! C# ;)

Irdis 12.06.2010 15:10

разница у вас в каком смысле.

ShkiperLol 12.06.2010 15:23

Например

if(byte1[i]!=byte2[i])
{

}
i - номер ; byte1[i] - данные

akimov_aleks 12.06.2010 15:33

так они у тебя уже есть. и i - номер ; byte1[i] - данные
если не равны то записывай куда надо...

Irdis 12.06.2010 15:36

Код:

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

Irdis 12.06.2010 15:50

если ты "скидуешь" данные в двумерный массив тебе в любом случае придётся либо приводить его к одномерному, либо использовать сериализацию.


Цитата:

Например

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

Цитата:

Сообщение от ShkiperLol
Главная проблема в том:
Номер - это int
Данные - это byte

И как мне их увязать и скинуть я не знаю.

Непонятно, в чем проблема?
Так и отправляй, номер(4байта) и данные(1байт)

ShkiperLol 12.06.2010 18:26

Вот проблема как передать ?
Два массива отправлять ?

Ra$cal 12.06.2010 18:37

омг. погугли c# socket, почитай статьи. или доставляет сидеть и таращиться в страницу, ожидая готового кода.

ShkiperLol 12.06.2010 18:56

Я не знаю как скинуть двух мерный массив! И я не нашел!

Ra$cal 12.06.2010 19:07

Цитата:

Сообщение от M_script_
Непонятно, в чем проблема?
Так и отправляй, номер(4байта) и данные(1байт)

читать надо не по диагонали

Irdis 12.06.2010 19:10

Код:

    [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

_nic 14.06.2010 13:34

Цитата:

Сообщение от ShkiperLol
Я не знаю как скинуть двух мерный массив! И я не нашел!

Раззуй глаза, выше писали что нада сериализовать.


Время: 00:57