Member 12767135 Ответов: 0

Tcp клиент пропускает данные


Привет,

У меня есть TCP-сервер, установленный на моем Arduino Mega2560, и TCP-клиент на windows в visualbasic.net 2015 год.
Когда я посылаю короткий код на сервер, он принимается нормально.
Короткий код ответа от сервера к клиенту также работает нормально, однако, когда ответ больше, я получаю только его части (очень неполные). Это похоже на переполнение буфера или что-то в этом роде.

Спасибо заранее.
JJ

Что я уже пробовал:

Я пытался найти решение в интернете, но до сих пор мне это не удавалось.
Это мое vb.net код:

Частная Функция TCPConnect(TCPMessage As [String]) в виде строк
If (TCPMessage.Длина > 0) затем
Дим IP-Адресов Сервера Как String = "192.168.0.10)
Dim ServerPort As Int32 = 10000
Дим клиента как новый объект TcpClient(IP-адресов сервера, ServerPort) 'создать объект TcpClient.
Дим данных [байт]() = система.Текст.Кодирование.ASCII.GetBytes (TCPMessage) ' переводит переданное сообщение в ASCII и сохраняет его в виде байтового массива.
Dim stream As NetworkStream = клиент.GetStream () ' получить клиентский поток для чтения и записи. (Stream stream = клиент.Метод getstream())
течение.Запись (данные, 0, данные.Длина) ' отправьте сообщение на подключенный TcpServer.
data = New [Byte] (256) {} ' получите TcpServer. response. Буфер для хранения байтов ответа.
Dim responseData As [String] = [String].Пустая строка ' для хранения ответа ASCII-представления.
Dim байты как Int32 = stream. Read(data, 0, data.Length) ' считывает первую партию байтов ответа TcpServer.
responseData = система.Текст.Кодирование.ASCII.GetString(data, 0, bytes)
TCPConnect = responseData ' возвращает переменную с ответом от TCP-сервера.
течение.Close () ' закрыть поток.
Клиент.Close () ' закрыть клиента.
Ещё
'TCPConnect =" Error: Empty String "' возвращает переменную wit response от TCP-сервера.
TCPConnect = " Пустая Строка"
Конец, Если
Конечная Функция

0 Ответов