C# Socket Send

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ShkiperLol, 12 Jun 2010.

  1. ShkiperLol

    ShkiperLol Banned

    Joined:
    17 Apr 2010
    Messages:
    182
    Likes Received:
    1
    Reputations:
    0
    Есть Два масиива байтов byte
    Мне их нужно сравнить, если какойто из байтов разный то нужно скинуть по Socket его номер и данные. Как это лучше сделть я не знаю.

    Пожалуйста, кодом! C# ;)
     
    #1 ShkiperLol, 12 Jun 2010
    Last edited: 12 Jun 2010
  2. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    разница у вас в каком смысле.
     
  3. ShkiperLol

    ShkiperLol Banned

    Joined:
    17 Apr 2010
    Messages:
    182
    Likes Received:
    1
    Reputations:
    0
    Например

    if(byte1!=byte2)
    {

    }
    i - номер ; byte1 - данные
     
  4. akimov_aleks

    akimov_aleks New Member

    Joined:
    3 May 2009
    Messages:
    39
    Likes Received:
    1
    Reputations:
    0
    так они у тебя уже есть. и i - номер ; byte1 - данные
    если не равны то записывай куда надо...
     
  5. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    Code:
    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());
    }
    что-то в этом духе
     
  6. ShkiperLol

    ShkiperLol Banned

    Joined:
    17 Apr 2010
    Messages:
    182
    Likes Received:
    1
    Reputations:
    0
    допустим я скидую данные в двухмерный массив int[0][0] - [номер][данные]
    Как мне потом его скинуть?!

    Code:
    s.Send(a.Where((aj,j)=>aj!=b[j]).ToArray());
    Bred :D
     
    #6 ShkiperLol, 12 Jun 2010
    Last edited: 12 Jun 2010
  7. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    если ты "скидуешь" данные в двумерный массив тебе в любом случае придётся либо приводить его к одномерному, либо использовать сериализацию.



    какой вопрос такое и решение
     
  8. ShkiperLol

    ShkiperLol Banned

    Joined:
    17 Apr 2010
    Messages:
    182
    Likes Received:
    1
    Reputations:
    0
    Главная проблема в том:
    Номер - это int
    Данные - это byte

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

    ShkiperLol Banned

    Joined:
    17 Apr 2010
    Messages:
    182
    Likes Received:
    1
    Reputations:
    0
    help pliz
     
  10. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    Непонятно, в чем проблема?
    Так и отправляй, номер(4байта) и данные(1байт)
     
  11. ShkiperLol

    ShkiperLol Banned

    Joined:
    17 Apr 2010
    Messages:
    182
    Likes Received:
    1
    Reputations:
    0
    Вот проблема как передать ?
    Два массива отправлять ?
     
  12. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    омг. погугли c# socket, почитай статьи. или доставляет сидеть и таращиться в страницу, ожидая готового кода.
     
  13. ShkiperLol

    ShkiperLol Banned

    Joined:
    17 Apr 2010
    Messages:
    182
    Likes Received:
    1
    Reputations:
    0
    Я не знаю как скинуть двух мерный массив! И я не нашел!
     
  14. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    читать надо не по диагонали
     
  15. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    Code:
        [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
     
  16. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Раззуй глаза, выше писали что нада сериализовать.