Italian Rete locale maledetta ^_^

LucaMs

Expert
Licensed User
Longtime User
Come ho scritto in un altro post, non so per quale motivo ma una funzione dell'oggetto websocket (lato server) invece di restituirmi l'IP del client connesso mi restituisce l'IP pubblico del router.

Adesso me ne capita un'altra che ho la sensazione sia legata alla prima faccenda: quando il client si disconnette, sul server l'oggetto websocket dovrebbe scatenare l'evento Disconnected e non lo fa.

Ora, quale può essere il problema nella mia rete locale?

1) Il router ha fuso le sue valvoline;
2) va soltanto resettato con le impostazioni di fabbrica (bella rogna; servirebbe a qualcosa? Mah);
3) dipende da impostazioni del mio provider.

(il punto 3; non penso sia dovuto al fatto che non ho un IP fisso, tanto è vero che nei suoi esempi Erel aggira questa faccenda usando uno dei siti che fanno un po' da "instradatori", ergo il tutto dovrebbe funzionare anche con un IP dinamico).

Se qualcuno volesse fare delle prove, può trovare un abbozzo di accoppiata web client & server allegato a questo post. Erel ha già provato e risposto che a lui la cosa funziona, ovvero l'evento Disconnected viene regolarmente scatenato sul server.
(Nota: se voleste provare, dovreste cercare e sostituire i testi "TO CHANGE". Eventualmente togliere la parte dell'aggiornamento del IP sostituendola con il vs IP).

Qualche idea su dove possa stare la magagna?


Grazie
 

Star-Dust

Expert
Licensed User
Longtime User
Hai provato a usare un dispositivo android a posto del router, mettendolo in HotSpot?
Cosi hai eventualmente la conferma che é il router a darti grattacapi.

Ho tentato di provar eil tutto, ma con scarsi risultati.
Il server cercava un file di setting che non hai messo :p:p:p. Superato quest'ostacolo il Client mi cercava Library che non ho .... Quindi considerando che usavo il tempo che non c'è mi sono arreso.:):):)

Magari ci riprovo fra qualche giorno ...
 
Last edited:

udg

Expert
Licensed User
Longtime User
Non ho con me B4x, quindi non riesco a provare il tuo codice, ma il fatto che da Erel funzioni direi che sia indicativo della necessità di cercare il problema nella configurazione del router e/o di un eventuale AP.
Per entrambi i problemi sospetterei di una qualche regola NAT che magari avevi settato per altri scopi o test e poi è rimasta lì in agguato..eheh

Se hai modo di esportare la config del router, prova a postarla qui. Precisa anche se client e server sono su due hw distinti (es. PC e cellulare) e su quali canali si connettono (LAN e WLAN?). Giusto per avere un quadro preciso, che vada oltre le righe di codice.

Facce sapè..
 

LucaMs

Expert
Licensed User
Longtime User
Hai provato a usare un dispositivo android a posto del router, mettendolo in HotSpot?
No, perché non ho connessione dati sullo smartphone.

Se hai modo di esportare la config del router,
Boh, non mi pare si possa fare, se non a manina.

Precisa anche se client e server sono su due hw distinti (es. PC e cellulare)
Mi pareva ovvio ma cmq si, pc e smartphone.

e su quali canali si connettono (LAN e WLAN?)
Anche per questo pensavo fosse ovvio che sia WLAN, visto che, per quanto riguarda il primo problema...
mi restituisce l'IP pubblico del router.


Per entrambi i problemi sospetterei di una qualche regola NAT che magari avevi settato per altri scopi o test e poi è rimasta lì in agguato..eheh
Non credo ma darò un'occhiata.

Magari posso aggiungere quale siano il mio provider ed il router, così se altri hanno gli stessi...
Infostrada e Huawei HG532s (mi pare).


Grazie ad entrambi.
 

LucaMs

Expert
Licensed User
Longtime User
Il server cercava un file di setting che non hai messo
Il file settings.txt è fatto in questo modo:

JdbcUrl=jdbc:mysql://localhost/DA-CAMBIARE?characterEncoding=utf8
DriverClass=com.mysql.jdbc.Driver
DBUser=DA-CAMBIARE
DBPassword=DA-CAMBIARE
DBMyGameAdmin=DA-CAMBIARE
DBMyGameAdminPassword=DA-CAMBIARE

(nel progetto di esempio allegato al post non uso db, quindi le due righe relative possono essere eliminate)
 

sirjo66

Well-Known Member
Licensed User
Longtime User
anche io volevo provare ma non ho il B4J, puoi compilare il tutto e darmi un file eseguibile ??

quando si connette il client però devi mostrare qualche cosa a video che mostri l'IP altrimenti non so dirti se funziona o no
 

Star-Dust

Expert
Licensed User
Longtime User
anche io volevo provare ma non ho il B4J, puoi compilare il tutto e darmi un file eseguibile ??

quando si connette il client però devi mostrare qualche cosa a video che mostri l'IP altrimenti non so dirti se funziona o no

Il B4J lo puoi scaricare gratuitamente da https://www.b4x.com/b4j.html. Io l'ho usato per la prima volta per provare il codice di @LucaMs, ovviamente con scarsi risultati :(
 

LucaMs

Expert
Licensed User
Longtime User
anche io volevo provare ma non ho il B4J, puoi compilare il tutto e darmi un file eseguibile ??
Dopo aver modificato entrambi, sia client che server, in modo che sia possibile cambiare indirizzo IP e porta...
stavo allegando entrambi (apk e jar) e mi sono accorto che il jar supera da solo 3.5MB, mentre si possono allegare al massimo 512KB!.

Dovrei avere DropBox da qualche parte, ma vattelappesca dove :D.

Se vuoi posso mandarti i file via email (la tua non ce l'ho, ovviamente).

Cmq allego i sorgenti (b4j è gratuito, come detto da @Star-Dust nel post precedente).


Erroneamente, nel thread "internazionale" ho detto che disconnettendo l'app usando l'apposito tasto dell'app, l'evento Disconnected sul server non viene lanciato; invece questo avviene mentre non succede se si perde la connessione ad Internet.


[notare che i sorgenti allegati a quel thread non erano privi di bug (essendo dei progetti dai quali avevo tolto ogni parte non generica ma specifica per il mio... obiettivo :().
Lavoro inutile ma vado ad aggiustarli]
 

Attachments

  • Web Server.zip
    1.4 KB · Views: 289
  • Web client.zip
    9.1 KB · Views: 305
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Contrordine: disabilitando il wifi nemmeno sul server di Erel l'evento Disconnected si scatena, ergo non è un problema della mia rete (che ha sempre quello del client IP, però).

Come workaround (azz, non mi viene il termine italiano :p) consiglia di usare un timer (sul server).

Uhm... bella fregatura, comunque.


Grazie, bella gente.
 

Star-Dust

Expert
Licensed User
Longtime User
Erel ha lo stesso router che hai tu? :p:p:p
 

Star-Dust

Expert
Licensed User
Longtime User
Si lo so, ma non ho voglia di installarlo
Sinceramente neanche io, ma avendolo provato ti posso dire che non é malaccio.
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Per fare l'esempio migliore... con MS VS non potrei creare un server websocket, non senza comprare una licenza costosissima (le versioni gratuite non comprendono le librerie in questione).

Assolutamente non vero, io lavoro con VB.NET versione gratuita e mi sono fatto più di un server websocket senza problemi

Sergio
 

LucaMs

Expert
Licensed User
Longtime User
Assolutamente non vero, io lavoro con VB.NET versione gratuita e mi sono fatto più di un server websocket senza problemi

Sergio
Ecco perché:
Dopodiché, sprecata un'altra oretta sul Web per scoprire che su Windows 7 (ed il Framework Net 4.51) i WebSocket non sono supportati, serve Windows 8 (pensare ho comprato il portatile circa un paio di anni fà e c'era l'offerta di aggiornare il S.O. alla versione 8 per 39€, mi pare, ma non ho voluto fare casini né spendere di più!).

(da questo post)
 

sirjo66

Well-Known Member
Licensed User
Longtime User
non so bene cosa intendi per "websocket", però io utilizzo VB.NET 2010 Express (quello gratuito) e lavoro/sviluppo sia su Windows 7 sia su Windows 10, ma non ho mai avuto problemi a creare un server con un canale TCP/IP (socket) nemmeno con il vecchio Framework 2.0

Se vuoi ti preparo un piccolo programmino in VB.NET di server-socket e te lo invio

Sergio
 

Star-Dust

Expert
Licensed User
Longtime User
On effetti per creare un server non è necessario librerie aggiuntive in Visual Studio.
Qualcuno usa.anche librerie aggiuntive per agevolare il lavoro, ma non sono necessarie.

In VB6 io ne ho creati server, e se non ricordo male anche in VB.Net.

Ovviamente negli ultimi anni ho preferito java per creare server..
 
Last edited:
Top