Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-10-2011, 01:13   #1
Mattz
Member
 
L'Avatar di Mattz
 
Iscritto dal: Oct 2008
Messaggi: 192
[java] simulazione di pacchetti ICMP - tracerouting , come ricondursi a java

Devo preparare un mini progettino non sto chiedendo la pappa pronta ...che senso avrebbe.


Mi sono scontrato con un problema...sembrerebbe che java non supporti nativamente la possibilità di programmare in rete così a basso livello. Confermate?

Ho visto che alcuni risolvono con JMA (che dovrei studiarmi), ma temo sia solo per windows e io vorrei stare in ambiente unix. Altri usano Jcap.



Il tutto, penso, verrebbe più comodo con phyton. Però non lo conosco. Appena ho tempo me lo studio, ma temo sarebbe una cosa molto lunga..e soprattutto non so se sia il caso di sapere poco di tanti linguaggi invece di sviscerarne uno e conoscerne quante più librerie possibili.

Ad ora ho studiato C approfondendone più che altro le strutture dati. Java sempre strutture dati + swing + socket (sto seguendo il corso ora).



Pareri? Consigli? Mi affido a voi che avete una visione più ampia



edit: lavorando a "basso" livello, forse verrebbe comodo il C? Non ho mai studiato il networking in C, ma posso farlo visto che non devo partire da 0

Ultima modifica di Mattz : 01-10-2011 alle 01:55.
Mattz è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2011, 01:56   #2
Freaxxx
Senior Member
 
L'Avatar di Freaxxx
 
Iscritto dal: Dec 2006
Messaggi: 3808
mi sto informando per fare progetti relativi al networking, non ho quindi esperienza ma ho sbattuto il naso contro questa pagina http://download.oracle.com/javase/tu...etworking.html

che recita

Quote:
When you write Java programs that communicate over the network, you are programming at the application layer.
quindi la risposta è secca, almeno secondo il contenuto di quella pagina ufficiale, ma molto, in java, dipende anche da quali classi usi ( aka librerie ), perché Sun/Oracle ti dice sempre quello che vale in casa sua non in tutto il mondo della programmazione.
Freaxxx è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2011, 02:32   #3
Mattz
Member
 
L'Avatar di Mattz
 
Iscritto dal: Oct 2008
Messaggi: 192
magnifico


Quindi con il java "di base" non concludo nulla perchè sono troppo alto. Era meglio studiarsi il phyton .


Visto che non voglio studiare phyton con l'acqua alla gola, devo riuscire ad adattarmi al java. Per ora ho importato Jpcap (che permette di lavorare anche a più basso livello) ... adesso dovrò studiarmi la documentazione e darmi da fare.
Mattz è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2011, 02:52   #4
Freaxxx
Senior Member
 
L'Avatar di Freaxxx
 
Iscritto dal: Dec 2006
Messaggi: 3808
Quote:
Originariamente inviato da Mattz Guarda i messaggi
magnifico


Quindi con il java "di base" non concludo nulla perchè sono troppo alto. Era meglio studiarsi il phyton .


Visto che non voglio studiare phyton con l'acqua alla gola, devo riuscire ad adattarmi al java. Per ora ho importato Jpcap (che permette di lavorare anche a più basso livello) ... adesso dovrò studiarmi la documentazione e darmi da fare.
ma ti conviene lavorare a basso livello? controllare pacchetti? controllare header? controllare tutto il controllabile?
Freaxxx è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2011, 03:00   #5
Mattz
Member
 
L'Avatar di Mattz
 
Iscritto dal: Oct 2008
Messaggi: 192
Quote:
Originariamente inviato da Freaxxx Guarda i messaggi
ma ti conviene lavorare a basso livello? controllare pacchetti? controllare header? controllare tutto il controllabile?


devo..

quello che ho in mente è un'implementazione in java del classico tracerouting...quindi mi è utile poter creare dei pacchetti ICMP...
Mattz è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 09:18   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Mattz Guarda i messaggi
Devo preparare un mini progettino [b]non sto
Mi sono scontrato con un problema...sembrerebbe che java non supporti nativamente la possibilità di programmare in rete così a basso livello. Confermate?
*snip*

Premetto che le mie limitate conoscenze sono praticamente rivolte al solo lato desktop, quindi so poco o niente di programmazione internet (a parte le nozioni generali). Incuriosito da questo thread sono andato a vedere cosa si intende per traceroute e ho cercato l'home page di questa Jpcacp.

In meno di cinque minuti ho trovato un sorgente di esempio di ruimentale traceroute fatto in Java usando le Jpcap.
Consiglio all'autore del thread di andare nella home page di Jpcap e informarsi, in particolare una visita nella sezione Samples potrebbe essere proficua.

@EDIT: tra l'altro dando un'occhio ai javadoc è facile rendersi conto che Jpcap non deve essere un'API che richieda troppo tempo per essere assimilita: a livello quantitativo è composta da due package per un totale di un pugno di classi.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 03-10-2011 alle 10:32.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 09:31   #7
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Non credo proprio che un traceroute si possa fare da J2SE liscio. Considera che devi forgiare dei pacchetti a mano, incrementando il time-to-live per ogni hop (traceroute funziona così: mandi pacchetti sempre allo stesso endpoint ma inizi con TTL = 1, poi 2, 3, 4, etc... e vedi chi ti risponde).
La via più facile è usare libpcap o un suo binding (come jpcap appunto).
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 09:50   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da shinya Guarda i messaggi
La via più facile è usare libpcap o un suo binding (come jpcap appunto).
Ah, ecco, mi era sfuggito il fatto che jpcacp fosse un *binding* in Java di una libreria C. L'ho già detto che sono ignorante in materia?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 03-10-2011 alle 10:32.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 10:05   #9
Mattz
Member
 
L'Avatar di Mattz
 
Iscritto dal: Oct 2008
Messaggi: 192
Jpcap è davvero molto utile. Dopo aver perso fin troppo tempo per compilarlo per il mio ubuntu 64bit, sto implementando il tracerouting ... e non è neppure difficile, devo dire.

ps. Ho dato un occhiata alla pagina con gli esempi...assurdo..ci sono pure i codici di cui ho bisogno , però non li guarderò altrimenti non imparo nulla



edit: ne approfitto per chiedere una cosa sui pacchetti...sono novizio di queste cose:

ICMP è incapsulato in IP, ma per inviare il pacchetto non dovrei "scegliere" un protocollo di livello4 tra TCP e UDP?

Mi spiego meglio: se non usassi jpcap , dovrei manualmente aprire una socket (tcp o udp) e inviare pacchetti (penso)...invece con jpcap posso direttamente creare un pacchetto ICMP, settare i vari campi e mandare in non so che modo tramite un suo metodo. La classe ICMP non è legata in nessun modo a quella TCP o UDP.

Non capisco bene la questione dell'incapsulamento dei vari livelli. Ogni pacchetto che invio devo sempre incapsularlo fino ad arrivare a livello 4?


edit2: continuando a studiarmi queste cose , trovo spesso scritto che ICMP è incapsulato in ip e che quindi non è garantita la consegna. Rendo allora più chiara la domanda del mio primo edit: come è possibile inviare un pacchetto , senza passare attraverso un protocollo di livello 4?
O jpcap con il suo send.(pacchetto); in realtà sta automatizzando il passaggio a livello 4, oppure non capisco come sia possibile inviare un pacchetto ICMP



edit3: e poi basta . Ho capito che ICMP è un protocollo "speciale" e non è legato ad UDP o TCP perchè a tutti gli effetti non è usato per il trasporto dati. Viene instradato "a parte" proprio da livello3. Quindi non devo preoccuparmi di incapsularlo in TCP o UDP (neppure potrei), perchè in quanto pacchetto ICMP, sarà inviato per conto proprio. Confermate?

Ultima modifica di Mattz : 03-10-2011 alle 10:40.
Mattz è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2011, 16:40   #10
Mattz
Member
 
L'Avatar di Mattz
 
Iscritto dal: Oct 2008
Messaggi: 192
creo un nuovo messaggio, non per uppare, ma per non pasticciare ulteriormente quello sopra.

Mi sono ritrovato di fronte ad un problema concettuale che non riesco a risolvere:

una volta creato il pacchetto ICMP con i campi di mio interesse e i campi dedicati al protocollo IP, devo specificare il datalink. Ed è qui che mi ritrovo a non capire. So che il datalink è di livello inferiore (2) e ne comprendo la funzione, ma non capisco fino a che punto devo essere io a specificare i vari livelli.

Ovvero, mettendo di dover mandare un pacchetto dati:

scelgo ad esempio TCP (livello 4), al suo interno imposto i campi IP (livello 3) altrimenti a chi manda il pacchetto.. , nei vari codici vedo poi che anche il livello 2 viene specificato: si ottiene il MAC della propria macchina e il MAC del gateway e si mette tutto in un campo datalink.
Ma allora fino a che punto devo incapsulare protocolli? Ogni volta devo arrivare a livello2?

Forse dipende dal tipo di linguaggio/libreria che sto usando? Ad esempio lavorando con le socket di java dovrei solo preoccuparmi del livello 4 (scegliendo la socket TCP o UDP)?

E' proprio una lacuna concettuale che non riesco a risolvere...e se qualcuno avesse la pazienza di spiegarmi cosa sto sbagliando mi farebbe un grande favore...perchè se non capisco bene le basi non potrò fare applicazioni complesse (ma neppure semplici..)

Grazie



edit: forse ho trovato conferme: "If this JpcapSender instance was created by openRawSocket(), you can only send IP packets, but you may not need to set the Datalink layer's header of the IP packets you want to send.
Note: the implementation and behavior of a raw socket may vary in different OS. For example, in Windows 2000/XP, you need to manually set the datalink/IP headers of a packet. "

quindi dipende proprio dal sistema + linguaggio + metodi ... o no?



edit2: riedito solo per far sapere che Jpcap ha una documentazione che fa schifo. Non c'è scritto praticamente nulla e si deve andare a tentativi. Oltre a questo , l'intero funzionamento delle librerie è molto dubbio visto che certi parametri vengono ignorati senza troppi complimenti nel momento di creazione del pacchetto.

Ultima modifica di Mattz : 04-10-2011 alle 14:25.
Mattz è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2011, 12:45   #11
starfred
Senior Member
 
Iscritto dal: Jul 2011
Messaggi: 381
ciao, il discorso è abbastanza semplice e si parte dal presupposto che tu hai OBBLIGATORIAMENTE bisogno dell'indirizzo mac mittente e dell'indirizzo mac del next-hop. Detto questo la documentazione che hai incollato spiega che in alcuni OS l'assegnamento dei vari mac address è automatica, in altri no.
__________________
Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX
starfred è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Porsche Taycan 2027 elettrica con cambio...
Roscosmos: stazione spaziale russa ROS a...
Auto 2035, sei governi UE (c'è l'...
Chernobyl: la cupola di contenimento non...
SSD come CPU: queste memorie sono in gra...
La previsione di CATL: barche elettriche...
Stangata in arrivo: PC e notebook coster...
Lian Li si è inventata il primo a...
Amazon in raptus sconti: ogni 24 ore nov...
44 idee regalo sotto i 50€: con le offer...
Super Sconti Amazon Haul: ribassi fino a...
Cloudflare ha bloccato 416 miliardi di r...
Prezzo mai visto: POCO F7 12/256GB in su...
Svuotano tutto: super sconto su due scop...
Warner-Netflix, l'accordo riaccende le s...
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: 15:29.


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