HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 09.04.2021, 17:22
ANZR
Участник форума
Регистрация: 03.08.2019
Сообщений: 168
С нами: 3568604

Репутация: 48
По умолчанию

Хаюшки

Это вопрос для шарющих.

Те, кто интересовался работой сокетов на c++ и знают, что это такое

У меня к вам вопрос

Как можно передать данные между игроками/пользователями через интернет, т.к либ для работы с сокетом я не нашел в SF, а методы, что работают в обычном проекте тут не прокатывают.
 
Ответить с цитированием

  #2  
Старый 09.04.2021, 18:54
memir
Постоянный
Регистрация: 21.08.2015
Сообщений: 343
С нами: 5646349

Репутация: 163
По умолчанию

Все там прокатывает... Опиши конкретнее, в чем ошибка
 
Ответить с цитированием

  #3  
Старый 09.04.2021, 19:07
ANZR
Участник форума
Регистрация: 03.08.2019
Сообщений: 168
С нами: 3568604

Репутация: 48
По умолчанию

Цитата:
Сообщение от memir  

Все там прокатывает... Опиши конкретнее, в чем ошибка
Крч, подключаю либу с сокетом

Вроде пишет, что она есть, даже ее открывает, но при создании той же самой структуры, говорит, что она не объявлена
 
Ответить с цитированием

  #4  
Старый 09.04.2021, 19:46
memir
Постоянный
Регистрация: 21.08.2015
Сообщений: 343
С нами: 5646349

Репутация: 163
По умолчанию

Цитата:
Сообщение от ANZR  

Крч, подключаю либу с сокетом
Вроде пишет, что она есть, даже ее открывает, но при создании той же самой структуры, говорит, что она не объявлена
покажи код и что пишет студия
 
Ответить с цитированием

  #5  
Старый 09.04.2021, 19:52
ANZR
Участник форума
Регистрация: 03.08.2019
Сообщений: 168
С нами: 3568604

Репутация: 48
По умолчанию

 
Ответить с цитированием

  #6  
Старый 09.04.2021, 23:39
Vintik
Познавший АНТИЧАТ
Регистрация: 18.08.2017
Сообщений: 1,568
С нами: 4598023

Репутация: 183


По умолчанию

А можно в виде кода, а не скриншота?
 
Ответить с цитированием

  #7  
Старый 10.04.2021, 01:05
ANZR
Участник форума
Регистрация: 03.08.2019
Сообщений: 168
С нами: 3568604

Репутация: 48
По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

Сокеты к проекту так же подключал?

C++:





Код:
#include 
#include 
#pragma comment(lib, "WS2_32.lib")

Да, точно также

Я же сказал, что они вроде-бы определились но выводят такую ошибку
 
Ответить с цитированием

  #8  
Старый 10.04.2021, 01:05
ANZR
Участник форума
Регистрация: 03.08.2019
Сообщений: 168
С нами: 3568604

Репутация: 48
По умолчанию

Цитата:
Сообщение от Vintik  

А можно в виде кода, а не скриншота?
Окс

с++:





Код:
#include 
#include "main.h"
#pragma comment(lib, "ws2_32.lib")
#include 
#include 
#include 
#pragma warning(disable: 4996)
SOCKET Connection
;
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
bool
CALLBACK
outcomingData
(
stRakNetHookParams
*
params
)
// определение callback-функции, которая будет вызвана при отправке какого либо пакета
{
if
(
params
->
packetId
==
93
)
{
UINT32 dColor
;
UINT32 messageLen
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
dColor
)
;
params
->
bitStream
->
Read
(
messageLen
)
;
char
*
msg
=
new
char
[
messageLen
]
;
params
->
bitStream
->
Read
(
msg
,
messageLen
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
msg
)
;
params
->
bitStream
->
ResetReadPointer
(
)
;
}
return
true
;
// успешно завершаем отправку пакета
}
;
void
__stdcall
mainloop
(
)
{
static
bool
initialized
=
false
;
if
(
!
initialized
)
{
if
(
GAME
&&
GAME
->
GetSystemState
(
)
==
eSystemState
::
GS_PLAYING_GAME
&&
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
{
initialized
=
true
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_INCOMING_RPC
,
outcomingData
)
;
// регистрируем RakNet callback
WSAData wsaData
;
WORD DLLVersion
=
MAKEWORD
(
2
,
1
)
;
if
(
WSAStartup
(
DLLVersion
,
&
wsaData
)
!=
0
)
{
std
::
cout

getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"Error connected to server!"
)
;
}
else
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"Connected!"
)
;
}
}
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
return
TRUE
;
}
 
Ответить с цитированием

  #9  
Старый 10.04.2021, 01:30
ALF
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами: 4472205

Репутация: 163
По умолчанию

Цитата:
Сообщение от ANZR  

Окс

с++:





Код:
#include 
#include "main.h"
#pragma comment(lib, "ws2_32.lib")
#include 
#include 
#include 
#pragma warning(disable: 4996)
SOCKET Connection
;
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
bool
CALLBACK
outcomingData
(
stRakNetHookParams
*
params
)
// определение callback-функции, которая будет вызвана при отправке какого либо пакета
{
if
(
params
->
packetId
==
93
)
{
UINT32 dColor
;
UINT32 messageLen
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
dColor
)
;
params
->
bitStream
->
Read
(
messageLen
)
;
char
*
msg
=
new
char
[
messageLen
]
;
params
->
bitStream
->
Read
(
msg
,
messageLen
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
msg
)
;
params
->
bitStream
->
ResetReadPointer
(
)
;
}
return
true
;
// успешно завершаем отправку пакета
}
;
void
__stdcall
mainloop
(
)
{
static
bool
initialized
=
false
;
if
(
!
initialized
)
{
if
(
GAME
&&
GAME
->
GetSystemState
(
)
==
eSystemState
::
GS_PLAYING_GAME
&&
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
{
initialized
=
true
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_INCOMING_RPC
,
outcomingData
)
;
// регистрируем RakNet callback
WSAData wsaData
;
WORD DLLVersion
=
MAKEWORD
(
2
,
1
)
;
if
(
WSAStartup
(
DLLVersion
,
&
wsaData
)
!=
0
)
{
std
::
cout

getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"Error connected to server!"
)
;
}
else
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"Connected!"
)
;
}
}
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
return
TRUE
;
}

#include - удали

#include "main.h" - после всех инклюдов
 
Ответить с цитированием

  #10  
Старый 10.04.2021, 01:31
ANZR
Участник форума
Регистрация: 03.08.2019
Сообщений: 168
С нами: 3568604

Репутация: 48
По умолчанию

Цитата:
Сообщение от ALF  

#include - удали
#include "main.h" - после всех инклюдов
Спасибо, а с чем это связано
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.