purebasic.info

PureBasic forum
Текущее время: Пн окт 15, 2018 11:47 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: IPString + Ascii + Debug (любителям ребусов)
СообщениеДобавлено: Вс янв 14, 2018 11:57 am 
Не в сети
профессор

Зарегистрирован: Чт сен 22, 2011 6:21 pm
Сообщений: 253
Благодарил (а): 34 раз.
Поблагодарили: 25 раз.
Пункты репутации: 0
Данная ошибка возникает только при компиляции в режиме ascii(в юникоде все прекрасно), с включенным дебагером.
Представленный код сокращен до минимума, и ничего полезного не делает(просто демонстрирует багу).
Проверено на: PB5.31x32, PB5.46x32
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
EnableExplicit
InitNetwork()
Define MyIP$, rc.i, BroadConn.i, *Request, s$="123"
 
ExamineIPAddresses()
MyIP$ = IPString(NextIPAddress())
 
Debug s$
Debug MyIP$ ;<--- если закоментировать эту строку ошибка исчезнет
 
BroadConn = OpenNetworkConnection("127.0.0.1",49000,#PB_Network_UDP)
Debug BroadConn
*Request = AllocateMemory(2048)
rc = ReceiveNetworkData(BroadConn,*Request,MemorySize(*Request))
 


Ошибка:
Цитата:
[15:46:12] Тип исполняемого файла: Windows - x86 (32bit, Thread, Purifier)
[15:46:12] Запущен исполняемый файл.
[15:46:12] [ОШИБКА] IPString_Error.pb (Строка: 14)
[15:46:12] [ОШИБКА] Invalid memory access. (read error at address 0)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс янв 14, 2018 1:47 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 271
Благодарил (а): 14 раз.
Поблагодарили: 32 раз.
Пункты репутации: 0
А в чем баг? Сокет то не прослушивается.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Define MyIP$, rc.i, BroadConn.i, *Request, s$="123"
 
ExamineIPAddresses()
MyIP$ = IPString(NextIPAddress())
 
Debug s$
Debug MyIP$ ;<--- если закоментировать эту строку ошибка исчезнет
 
BroadConn = OpenNetworkConnection("127.0.0.1",49000,#PB_Network_UDP)
Debug BroadConn
*Request = AllocateMemory(2048)
 
Select NetworkClientEvent(BroadConn)
  Case #PB_NetworkEvent_Data
    rc = ReceiveNetworkData(BroadConn,*Request,MemorySize(*Request))
EndSelect



Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс янв 14, 2018 1:48 pm 
Не в сети
профессор

Зарегистрирован: Пн янв 03, 2011 4:27 pm
Сообщений: 412
Благодарил (а): 5 раз.
Поблагодарили: 17 раз.
Пункты репутации: 0
У меня норм запускается на PB 5.31 x32, а на x64 выдает ощибку.
Может прочитать справку по ReceiveNetworkData?, и попробуй GetLastError_().
Цитата:
Description
Receives raw data from the specified client. This function can be used by both client and server applications and should be called only after having received a #PB_NetworkEvent_Data event.
Попробуй этот код, и напиши.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
EnableExplicit
InitNetwork()
Define MyIP$, rc.i, BroadConn.i, *Request, s$="123"
 
ExamineIPAddresses()
MyIP$ = IPString(NextIPAddress())
 
Debug s$
Debug MyIP$ ;<--- если закоментировать эту строку ошибка исчезнет
 
BroadConn = OpenNetworkConnection("127.0.0.1",49000,#PB_Network_UDP)
Debug BroadConn
*Request = AllocateMemory(2048)
Debug GetLastError_() ; какие тут значение напиши?
rc = ReceiveNetworkData(BroadConn,*Request,MemorySize(*Request))
Debug GetLastError_() ; какие тут значение напиши?



Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс янв 14, 2018 2:18 pm 
Не в сети
профессор

Зарегистрирован: Чт сен 22, 2011 6:21 pm
Сообщений: 253
Благодарил (а): 34 раз.
Поблагодарили: 25 раз.
Пункты репутации: 0
repeat писал(а):
А в чем баг? Сокет то не прослушивается.

Ну точно-жеж :D

зы. сбило с толку то, что вылезло после добавления дополнительной строки с дебагом. Да и подзабыл уже, что NetworkClientEvent совершенно необходим перед приемом из сети (хотя по справке это не очень очевидно)

зызы. тема фсё.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB