Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è
La PNY GeForce RTX 5080 Slim OC si distingue nel panorama delle GPU di fascia alta per il design compatto a due slot, ispirato alla NVIDIA GeForce RTX 5080 Founders Edition. In questo test analizziamo comportamento termico e prestazioni in gioco, valutando se il formato ridotto comprometta o meno l'esperienza complessiva rispetto alle soluzioni più ingombranti presenti sul mercato.
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-09-2005, 17:12   #1
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
Problema con le JNI

Ho un problema con le JNI quando scrivo il codice sorgente C
questa è una parte del codice sorgente C (ci metto anche i numeri di riga per maggior chiarezza.

4. JNIEXPORT jint JNICALL Java_Ipktgen_Pktgen
5. (JNIEnv *, jobject obj, jint ttl, jlong d_ip, jintArray payload);
6. {

durante la compilazione mi da questo errore:

pktgen.c:5: error: syntax error before '{' token
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2005, 21:25   #2
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
togli il punto e virgola in fondo alla riga.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 13:00   #3
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
Quote:
Originariamente inviato da kingv
togli il punto e virgola in fondo alla riga.
hai ragione.
Ora sono riuscito a compilare tutto (non pensavo di riuscirci) mi rimangono solo un paio di warning:

pktgen.c: In function `main':
pktgen.c:112: warning: control reaches end of non-void function

credo che la parte di codice che da errore sua questa:

110. return 0;
111. }
112. int main() {}
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 13:48   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
anziché

int main() {}

prova a scrivere

int main() {
return 0;
}
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 14:41   #5
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
Posto tutto il codice:

#include <stdio.h>
#include <libnet.h>
#include "Ipktgen.h"


JNIEXPORT jint JNICALL Java_Ipktgen_Pktgen
(JNIEnv *env, jobject obj, jint ttl, jlong d_ip, jintArray payload)
{
struct input_struct
{
u_long s_ip; /* source ip address */
u_long d_ip; /* destination ip address */
u_char *data; /* ip payload */
u_short data_size; /* ip payload size */
}
input;

u_short h_lenght; /* header lenght */
short n; /* byte wrote */
char err_buf[LIBNET_ERRBUF_SIZE]; /* error buffer */

libnet_t *l; /* libnet context handler */

/* set default */
input.d_ip=0;
input.data_size=0;
input.data=NULL;

/* initialize libnet_t* */
if ((l=libnet_init(LIBNET_RAW4, /* injection type */
NULL, /* network interface */
err_buf))==NULL) /* error buffer */
{
fprintf (stderr, "Error: %s\n", err_buf);
return -1;
}


/* build ipv4 header */
if (libnet_build_ipv4
(
h_lenght+input.data_size,/* len */
0, /* tos */
0x200, /* id */
0, /* frag */
ttl, /* ttl */
IPPROTO_TCP, /* transport protocol */
0, /* sum */
input.s_ip, /* source address */
d_ip, /* destination address */
NULL, /* ip payload */
0, /* ip payload size */
l, /* libnet context */
0 /* we don't need ptag */
)==-1)
{

fprintf (stderr, "Error %s\n", libnet_geterror(l));
return 1;
}

printf ("* IP header builded\n");

/* write packet */
if ((n=libnet_write(l))==-1)
fprintf (stderr, "Error %s\n", libnet_geterror(l));

printf ("* Packet correctly wrote on wire: %d bytes\n", n);

/* destroy all */
libnet_destroy(l);

return 0;
}
int main() {}
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 17:43   #6
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
se vuoi che lo compiliamo ci serve anche il .h

il main toglilo non ne hai bisogno
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2005, 20:36   #7
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
Quote:
Originariamente inviato da kingv
se vuoi che lo compiliamo ci serve anche il .h

il main toglilo non ne hai bisogno
Il .h è questo:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include "jni.h"
/* Header for class Ipktgen */

#ifndef _Included_Ipktgen
#define _Included_Ipktgen
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Ipktgen
* Method: Pktgen
* Signature: (IJ[I)I
*/
JNIEXPORT jint JNICALL Java_Ipktgen_Pktgen
(JNIEnv *, jobject, jint, jlong, jintArray);

#ifdef __cplusplus
}
#endif
#endif
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2005, 00:35   #8
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
se tolgo il main mi da questo errore:
root@localhost codice]# gcc -Wall -o2 pktgen.c -o pktgen -lnet
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../crt1.o(.text+0x18): In funct ion `_start':
../sysdeps/i386/elf/start.S:98: undefined reference to `main'
collect2: ld returned 1 exit status
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2005, 08:57   #9
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
devi compilare una shared library, non un eseguibile....

gcc pktgen.c -o pktgen.so -shared -I/usr/java/j2sdk1.4.2_04/include -I/usr/java/j2sdk1.4.2_04/include/linux
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2005, 10:09   #10
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
Quote:
Originariamente inviato da kingv
devi compilare una shared library, non un eseguibile....

gcc pktgen.c -o pktgen.so -shared -I/usr/java/j2sdk1.4.2_04/include -I/usr/java/j2sdk1.4.2_04/include/linux
Se scrivo così mi compila lo stesso:
gcc -c -Wall -o2 pktgen.c -o pktgen
non conosco bene tutti i parametri di gcc, cosa sambia scrivendo come ho fatto io?
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2005, 10:44   #11
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da ambuotiz
Se scrivo così mi compila lo stesso:
gcc -c -Wall -o2 pktgen.c -o pktgen
non conosco bene tutti i parametri di gcc, cosa sambia scrivendo come ho fatto io?

se usi '-c' come hai fatto tu non passa per lo stadio di linking.
per compilare compila, ma ottieni un file oggetto cui non puoi accedere da java via jni.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2005, 11:03   #12
ambuotiz
Bannato
 
Iscritto dal: Jan 2002
Città: Roma
Messaggi: 1130
ho un problema che non so come risolvere: devo passare un array di interi java al codice C. Per farlo ho scritto questo codice:

jsize len = (*env)->GetArrayLength(env, payload); //payload è il nome dell'array java di lunghezza len
jint *body = (*env)->GetIntArrayElements(env, payload, 0);
int cpayload [len]; //creo l'array C
int i;
for (i=0; i<len; i++)
{
cpayload[i] = body[i]; //copio i valori dell'array java nell'array C
}

input.d_ip=0;
input.data_size=len;
input.data=(u_char)*body; //questa riga mi da errore

l'errore che mi da il compilatore è questo:
warning: assignment makes pointer from integer without a cast

P.S. la variabile data è definita in questo modo:
u_char *data;
ambuotiz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
L'AI agentica potrebbe trasformare Inter...
Qualcomm lancerà due chip per sma...
Xiaomi dà i numeri: ecco come &eg...
AMD annuncia Ryzen 9 9950X3D2 Dual Editi...
CyrusOne avvia la costruzione del suo pr...
Cloud in crescita, ma l’adozione dell’IA...
OpenAI cancella l'adult mode di ChatGPT:...
Google Search Live arriva in Italia: la ...
MacBook Air 15'' con chip M4 (2025) crol...
Ora è possibile trasferire file t...
Apple domina con il MacBook Neo: i lapto...
Arriva la nuova gamma di PC Dell Pro per...
DJI Avata 360: la recensione del primo d...
Il browser di Samsung arriva su Windows,...
I satelliti AI Sat Mini per i datacenter...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v