Программирование для PSP Вы программист? Welcome сюда...
02.01.2012, 15:23
Сообщение: #1 (1000152)
Модель консоли: PSP-3004
Регистрация: 01.01.2012
Возраст: 33
Сообщений: 5
Вы сказали Спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Сила репутации:
0 Репутация: 1  
(с надеждой на лучшее)
вопрос по работе с сетью
Извиняюсь за такое количество новых тем но снова есть вопросы
1) Как заставить мое приложение к инету подключиться? Пытался смотреть примеры из сдк, но они у меня не запустились. Нужно как то выдать диалог с выбором подключения и собственно соединиться.
2) Сильно ли отличается работа с сокетами от "обычной" под линуксом? Ну кроме имен функций.
Заранее спасибо!
З.Ы.
Искал примеры на псп-хаке, но не нашел. Наверное плохо искал
02.01.2012, 15:44
Сообщение: #2 (1000156)
Модель консоли: PSP-1004
Прошивка: 6.61 PROMOD-C2p
Другие консоли: Все PSP, все PSV, SCPH-1002, SCPH-102, SCPH-77008, CECH-4208C, SCPH-1000R
Регистрация: 19.03.2008
Адрес: Россия
Сообщений: 5,798
Вы сказали Спасибо: 823
Поблагодарили 3,935 раз(а) в 2,061 сообщениях
Сила репутации:
1 Репутация: 3935  
(репутация неоспорима)
indeec-evafan ,
1) Никогда не работал, не подскажу.
2) Работа крайне схожа с тем, что обзывается красивым словом
POSIX .
3) А хакс то тут причём?
Тут нужно смотреть.
02.01.2012, 19:16
Сообщение: #3 (1000192)
Модель консоли: PSP-3004
Регистрация: 01.01.2012
Возраст: 33
Сообщений: 5
Вы сказали Спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Сила репутации:
0 Репутация: 1  
(с надеждой на лучшее)
Yoti , я еще новичек в этом деле - где что искать незнаю. Но на пс2дев действительно кое что нашлось, так что спасибо!
З.Ы. Если кому вдруг понадобиться - вот что у меня получилось (пришлось пример слегка до ума доводить)
main.c
Исходный код
#include <string.h>
#include <stdlib.h>
#include <pspdebug.h>
#include <pspkernel.h>
#include <pspgu.h>
#include <pspdisplay.h>
#include <psputility.h>
#include <pspnet.h>
#include <pspnet_inet.h>
#include <pspnet_apctl.h>
#include <pspctrl.h>
PSP_MODULE_INFO("Net Dialog Sample", 0, 1, 0);
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);
PSP_HEAP_SIZE_KB(1024);
#define BUF_WIDTH (512)
#define SCR_WIDTH (480)
#define SCR_HEIGHT (272)
#define printf pspDebugScreenPrintf
#define setxy pspDebugScreenSetXY
static unsigned int __attribute__((aligned(16))) list[262144];
static int running = 1;
pspUtilityNetconfData data;
int exit_callback(int arg1, int arg2, void *common)
{
running = 0;
return 0;
}
int CallbackThread(SceSize args, void *argp)
{
int cbid;
cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;
}
int SetupCallbacks(void)
{
int thid = 0;
thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, PSP_THREAD_ATTR_USER, 0);
if (thid >= 0)
sceKernelStartThread(thid, 0, 0);
return thid;
}
void init()
{
pspDebugScreenInit();
sceGuInit();
sceGuStart(GU_DIRECT, list);
sceGuDrawBuffer(GU_PSM_8888, (void*) 0, BUF_WIDTH);
sceGuDispBuffer(SCR_WIDTH, SCR_HEIGHT, (void*) 0x88000, BUF_WIDTH);
sceGuDepthBuffer((void*) 0x110000, BUF_WIDTH);
sceGuOffset(2048 - (SCR_WIDTH / 2), 2048 - (SCR_HEIGHT / 2));
sceGuViewport(2048, 2048, SCR_WIDTH, SCR_HEIGHT);
sceGuDepthRange(0xc350, 0x2710);
sceGuScissor(0, 0, SCR_WIDTH, SCR_HEIGHT);
sceGuEnable(GU_SCISSOR_TEST);
sceGuDepthFunc(GU_GEQUAL);
sceGuEnable(GU_DEPTH_TEST);
sceGuFrontFace(GU_CW);
sceGuShadeModel(GU_SMOOTH);
sceGuEnable(GU_CULL_FACE);
sceGuEnable(GU_CLIP_PLANES);
sceGuEnable(GU_BLEND);
sceGuBlendFunc(GU_ADD, GU_SRC_ALPHA, GU_ONE_MINUS_SRC_ALPHA, 0, 0);
sceGuFinish();
sceGuSync(0, 0);
sceDisplayWaitVblankStart();
sceGuDisplay(GU_TRUE);
sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON);
sceUtilityLoadNetModule(PSP_NET_MODULE_INET);
sceNetInit(128 * 1024, 42, 4 * 1024, 42, 4 * 1024);
sceNetInetInit();
sceNetApctlInit(0x8000, 48);
}
void deinit()
{
sceNetApctlTerm();
sceNetInetTerm();
sceNetTerm();
}
void loadNetDialog(int action)
{
memset(&data, 0, sizeof(data));
data.base.size = sizeof(data);
sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_LANGUAGE, &data.base.language);
sceUtilityGetSystemParamInt(PSP_SYSTEMPARAM_ID_INT_UNKNOWN, &data.base.buttonSwap);
data.base.graphicsThread = 17;
data.base.accessThread = 19;
data.base.fontThread = 18;
data.base.soundThread = 16;
data.action = action;
struct pspUtilityNetconfAdhoc adhocparam;
memset(&adhocparam, 0, sizeof(adhocparam));
data.adhocparam = &adhocparam;
sceUtilityNetconfInitStart(&data);
}
int main(int argc, char** argv)
{
SetupCallbacks();
init();
SceCtrlData pad;
while (running)
{
sceGuStart(GU_DIRECT, list);
sceGuClearColor(0x00000000);
sceGuClearDepth(0);
sceGuClear(GU_COLOR_BUFFER_BIT | GU_DEPTH_BUFFER_BIT);
sceGuFinish();
sceGuSync(0, 0);
switch (sceUtilityNetconfGetStatus())
{
case PSP_UTILITY_DIALOG_NONE:
break;
case PSP_UTILITY_DIALOG_VISIBLE:
sceUtilityNetconfUpdate(1);
break;
case PSP_UTILITY_DIALOG_QUIT:
sceUtilityNetconfShutdownStart();
break;
case PSP_UTILITY_DIALOG_FINISHED:
break;
default:
break;
}
setxy(0,0);
printf("\n Press X and connect to AP\n Or press O and see connection status");
sceDisplayWaitVblankStart();
sceGuSwapBuffers();
sceCtrlPeekBufferPositive(&pad, 1);
if (pad.Buttons & PSP_CTRL_CROSS)
{
loadNetDialog(PSP_NETCONF_ACTION_CONNECTAP);
}
if (pad.Buttons & PSP_CTRL_CIRCLE)
{
loadNetDialog(PSP_NETCONF_ACTION_DISPLAYSTATUS);
}
}
deinit();
sceKernelExitGame();
return 0;
}
makefile
TARGET = template
OBJS = main.o
INCDIR =
LIBS = -lpsputility -lpspgu
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LIBDIR =
LDFLAGS =
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Template
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
Последний раз редактировалось indeec-evafan; 03.01.2012 в 10:03 .
Причина: убрал код в спойлер
Этот пользователь сказал Спасибо indeec-evafan за это полезное сообщение:
02.01.2012, 19:31
Сообщение: #4 (1000195)
Модель консоли: PSP-1004
Прошивка: 6.61 PROMOD-C2p
Другие консоли: Все PSP, все PSV, SCPH-1002, SCPH-102, SCPH-77008, CECH-4208C, SCPH-1000R
Регистрация: 19.03.2008
Адрес: Россия
Сообщений: 5,798
Вы сказали Спасибо: 823
Поблагодарили 3,935 раз(а) в 2,061 сообщениях
Сила репутации:
1 Репутация: 3935  
(репутация неоспорима)
indeec-evafan ,
спасибо, может и пригодится. Просто над PSPSDK работ не ведётся, а содержимое давно уже требует правки...
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Текущее время: 17:59 . Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод:
zCarot
PSPx Forum - Сообщество фанатов игровых консолей.