1. 游客, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Достать данные по TCP

本贴由 Fituchini2021-04-07 发布. 版块名称: .NET

  1. TopicStarter Overlay

    Fituchini Пользователи

    帖子:
    339
    支持:
    71
    性别:
    Репутация:
    0
    Команда:
    PWAA
    Страна:
    Russian Federation Russian Federation
    Всем добра господа.
    Я знаю вас трюкачи, как вы тащите инфу по офсетам.
    Поясните пожалуйста как сделать. Никак не дойду сам до этого.

    Есть приложение на iPhone, это приложение пересылает данные лица по TCP по порту своему приложению iClone
    Через Wireshark глянул что передаётся c телефона на комп
    А с компа на телефон хз что он там отправляет, может то что подключен
    [​IMG]
    [​IMG]

    Но вот считать никак не могу
    PHP:
    static NetworkStream stream;
            static 
    TcpClient client;
            static 
    BinaryReader reader;
            static 
    BinaryWriter writer;
            private const 
    int port 999;
            private const 
    string server "192.168.0.23";
            static 
    void Main(string[] args)
            {
                
    ConStack();
            }
    static 
    void ConStack()
            {
                
    client = new TcpClient();

                
    client.Connect(serverport); //подключение клиента
                
    var stream client.GetStream(); // возвращает объект NetworkStream
                
    reader = new BinaryReader(streamEncoding.Unicodefalse);
                
    writer = new BinaryWriter(streamEncoding.Unicodetrue);

                
    //writer.Write("JawOpen"); //При попытке отослать любое сообщение, программа улетает в Exception

                // запускаем новый поток для получения данных
                
    Thread receiveThread = new Thread(new ThreadStart(ReceiveMessage));
                
    receiveThread.Start(); //старт потока
                
    Console.WriteLine("Start Thread");
            }
      static 
    void ReceiveMessage()
            {
                
    byte[] data = new byte[1065]; // буфер для получаемых данных
                
    StringBuilder builder = new StringBuilder();
                while (
    true)
                {
                    try
                    {
                        var 
    byt reader.Read(data0data.Length);
                        
    builder.Append(Encoding.Unicode.GetString(data0byt));
                        
    Console.WriteLine(builder.ToString());
                     
    //Я получаю пустоту
                    
    }
                    catch (
    Exception ex)
                    {
                        
    Console.WriteLine("Подключение прервано!\n{0}"ex.Message); 
                        
    Console.ReadLine();
                    }
                }
            }
    Подскажите пожалуйста как мне считывать данные правильно?

    附件文件:

    已获得loko9988的支持.
  2. loko9988 B L A C K    L I S T Пользователи

    帖子:
    758
    支持:
    239
    性别:
    Репутация:
    1
    я думаю тебе проще будет разобрать приложение в дебагере. в 90% там будет читаемый код ибо везде джава или шарп или того проще js
  3. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    帖子:
    754
    支持:
    1,313
    性别:
    Репутация:
    6
    Я думаю некорректно пытаться вывести бинарный поток в консоль, как строку, как минимум при первом же 00 он будет считает, что это конец строки. По дампу похоже, что там все стандартно, заголовок (в котором по есть длина строки, за которой идет сама строка)
Черновик сохранён Черновик удалён

分享此页面