Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [JAVA] Eventi socket

    Salve, sto cercando di sviluppare un'applicazione che tramite lan mi permetta di emulare la tastiera di un pc su di un'altro. Sulla parte riguardante tastiera virtuale non ci sono stati problemi, l'unico inconveniente che sorge è nella trasmissione dati: ho preso spunto da una semplice chat che mi permette, in alternanza, di inviare campi di testo.
    Fin qui tutto ok, il problema sorge quando devo mandare in output, su una JLabel la stringa ricevuta dai socket: non riesco a creare l'evento(sempre se sia possibile) quando varia il campo del Socket.
    Ho avuto l'occasione di programmare in c++ con il Builder, il quale nei Socket dava a disposizione una serie di eventi molto utili, tra cui, quello che mi servirebbe il, "onRead".

  2. #2

    dopo lunghissime riflessioni sono giunto ad una soluzione, la scrivo nel caso serva a qualcuno:
    penso non esista un evento apposito che mi dica quando il testo sia stato ricevuto, suppongo sia già implementato automaticamente nel metodo readLine dei socket. Pertanto la mia soluzione è stata di utilizzare un timer: dato che se il "messaggio" è stato ricevuto il programma aspetta che gli venga dato, eseguo il metodo di lettura ogni millisecondo (senza timer è impossibile, entra in un loop senza ricevere dati).
    funziona

  3. #3
    se metti il socket in accept rimane bloccato fino a quando non arriva qualcosa

  4. #4
    Originariamente inviato da franksisca
    se metti il socket in accept rimane bloccato fino a quando non arriva qualcosa
    il problema non era ricevere un singolo dato, ma un flusso continuo, comunque ho risolto grazie.

  5. #5
    Originariamente inviato da marco1101

    dopo lunghissime riflessioni sono giunto ad una soluzione, la scrivo nel caso serva a qualcuno:
    penso non esista un evento apposito che mi dica quando il testo sia stato ricevuto, suppongo sia già implementato automaticamente nel metodo readLine dei socket. Pertanto la mia soluzione è stata di utilizzare un timer: dato che se il "messaggio" è stato ricevuto il programma aspetta che gli venga dato, eseguo il metodo di lettura ogni millisecondo (senza timer è impossibile, entra in un loop senza ricevere dati).
    funziona
    ho sbagliato a scrivere: sarebbe "dato che se il "messaggio"NON è stato ricevuto"

  6. #6
    i datagrampacket???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.