Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual Basic
Перезагрузить страницу Помогите с приемом данных через tcp winsock с клиента на сервер в контрол Spreadsheet
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
andrei34 andrei34 вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.06.2018
По умолчанию Помогите с приемом данных через tcp winsock с клиента на сервер в контрол Spreadsheet - 09.06.2018, 16:04

Здравствуйте. Я не давно начал программировать на visual basic 6.0. Еще много чего не знаю. Так что сильно не пинайте.
Делаю программу аттестации (тестирование),эта программа по завершении теста отправляет данные по tcp протоколу на сервер и вставляет их в Spreadsheet контрол в ячейки А2, B2, C2.
Вся суть вопроса в том что если все три переменные которые передаются на сервер числовые, то данные вставляются нормально,без искажений.А если данные строковые (либо первая строковая, а две остальные переменные числовые) то вставляются с искажениями, то есть вместо строки в ячейке появляется строка с каким то квадратиком, а в место цифр в двух других ячейках появляется ноль.
В чем может быть проблема?
Если на прямую вставлять в лист Spreadsheet данные по нажатии кнопки
то все данные, в любом порядке вставляются как надо. Значит я так думаю проблема появляется или при отправке с клиента или при получении на сервере?
Извините.
Код выложу вечером или завтра, так как нет его сейчас под рукой.
Ответить с цитированием
  (#2 (permalink)) Старый
andrei34 andrei34 вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.06.2018
По умолчанию 09.06.2018, 23:02

Вот собственно код:
Сервера:
basic Код:
Private Sub Form_Load()
tcpServer.LocalPort = 1001
tcpServer.Listen
frmClient.Show
End Sub


Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
If tcpServer.State <> sckClosed Then tcpServer.Close
tcpServer.Accept requestID
End Sub

Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
Dim a As String
Dim b As Integer
Dim c As Integer
tcpServer.GetData a
tcpServer.GetData b
tcpServer.GetData c
Spreadsheet1.Cells(2, 1) = a
Spreadsheet1.Cells(2, 2) = b
Spreadsheet1.Cells(2, 3) = c
End Sub

Клиента:
basic Код:
Dim a As String
Dim b As Integer
Dim c As Integer
Private Sub Command1_Click()
tcpClient.SendData a
tcpClient.SendData b
tcpClient.SendData c
End Sub

Private Sub Form_Load()
a = "fjhdjkfh"
b = 1
c = 122
tcpClient.RemoteHost = "193.168.131.121"
tcpClient.RemotePort = 1001
End Sub

Private Sub cmdConnect_Click()
tcpClient.Connect
End Sub
Вот такая бяка получается в результате.
Если передавать переменные все integer и числа не большие, то все проходит гладко.
2018-06-09_215721.jpg
Ответить с цитированием
  (#3 (permalink)) Старый
andrei34 andrei34 вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.06.2018
По умолчанию 11.06.2018, 01:46

Все, нашел выход из ситуации.
Передаю текстовые и числовые данные как единую строку с маркерами, а потом вырезаю то что нужно с этой строки уже на сервере.
Потом вставляю в лист ексель, все великолепно вставляется.
Можно автоматом вставлять а можно и ручками по кнопочке.
Это все пока тестовый вариант,поэтому все так убого.
вот код:
клиент
basic Код:
Dim a As String

Private Sub Command1_Click()
'tcpClient.SendData a
End Sub

Private Sub Form_Load()
a = "Иванов Иван Иванович;1;п33|н7;п13|н7;п10|н10;п15|н5;п10|н10;"
tcpClient.RemoteHost = "192.168.131.65"
tcpClient.RemotePort = 1001
End Sub

Private Sub cmdConnect_Click()
tcpClient.Connect
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
tcpClient.SendData a
Timer1.Enabled = False
End Sub

сервер
basic Код:
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim e As String
Dim f As String
Dim g As String
Dim h As String
Dim i As String
Dim k As Integer
Private Sub Command1_Click()
'b = Trim$(Split(a, ";")(0))
'c = Trim$(Split(a, ";")(1))
'd = Trim$(Split(a, ";")(2))
'e = Trim$(Split(a, ";")(3))
'f = Trim$(Split(a, ";")(4))
'g = Trim$(Split(a, ";")(5))
'h = Trim$(Split(a, ";")(6))
'i = Trim$(Split(a, ";")(7))
'For k = 1 To 50
'    If Spreadsheet1.Cells(k, 2) <> "" Then
'    GoTo m1:
'    Else: Spreadsheet1.Cells(k, 1) = b: Spreadsheet1.Cells(k, 2) = c: Spreadsheet1.Cells(k, 3) = d:
'          Spreadsheet1.Cells(k, 4) = e: Spreadsheet1.Cells(k, 5) = f: Spreadsheet1.Cells(k, 6) = g:
'          Spreadsheet1.Cells(k, 7) = h: Spreadsheet1.Cells(k, 8) = i: GoTo m2:
'm1:
'    End If
'Next k
'm2:
End Sub

Private Sub Form_Load()
tcpServer.LocalPort = 1001
tcpServer.Listen
frmClient.Show
End Sub
Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
If tcpServer.State <> sckClosed Then tcpServer.Close
tcpServer.Accept requestID
End Sub

Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
tcpServer.GetData a
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
b = Trim$(Split(a, ";")(0))
c = Trim$(Split(a, ";")(1))
d = Trim$(Split(a, ";")(2))
e = Trim$(Split(a, ";")(3))
f = Trim$(Split(a, ";")(4))
g = Trim$(Split(a, ";")(5))
h = Trim$(Split(a, ";")(6))
i = Trim$(Split(a, ";")(7))
For k = 1 To 50
    If Spreadsheet1.Cells(k, 2) <> "" Then
    GoTo m1:
    Else: Spreadsheet1.Cells(k, 1) = b: Spreadsheet1.Cells(k, 2) = c: Spreadsheet1.Cells(k, 3) = d:
          Spreadsheet1.Cells(k, 4) = e: Spreadsheet1.Cells(k, 5) = f: Spreadsheet1.Cells(k, 6) = g:
          Spreadsheet1.Cells(k, 7) = h: Spreadsheet1.Cells(k, 8) = i: GoTo m2:
m1:
    End If
Next k
m2:
End Sub
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игровой сервер через WIFI ??? lex79net Сетевые подключения 0 25.09.2016 17:42
Помогите в написании чата через FTP-сервер aerzon Сетевое программирование 5 13.11.2010 18:11
SSL и WINSOCK клиент сервер как написать xHEADx С/С++ 13 17.04.2008 14:18
Сетевое приложение два клиента один сервер Дрон C++ Builder 5 04.06.2007 22:28
как сделать отправку файла через клиента эл. почты? alextl Visual Basic 1 26.04.2006 19:58
Winsock UDP Помогите создать слушающий сокет negue WinAPI 4 25.03.2005 10:17
Как переслать скриншот рабочего стола от клиента на сервер AleksT_0 Visual C++ 18 23.12.2004 23:58
Нужно создать контрол для отправки данных yaro .NET 0 28.09.2004 15:10
Как организовать передачу файла от клиента на сервер Anonymous PHP 9 21.12.2003 02:09
Upload файла с клиента на сервер Anonymous DHTML, JavaScript, VBScript 1 06.08.2003 11:16
Как сделать сервер и клиента в одном приложении Anonymous Java 6 14.07.2003 21:33
Как передать массив данных из Web-клиента в COM Anonymous Visual C++ 1 24.02.2003 17:39



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов