Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

problem z Socketami

 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Programowanie
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
chlebek
alkoholik



Dołączył: 04 Lut 2006
Posty: 556
Przeczytał: 0 tematów

Skąd: Siedlce\Kraków

PostWysłany: Śro 16:57, 17 Sty 2007    Temat postu: problem z Socketami

Czy ktos kto lepiej zna jave mogly zerknac na ten kod i powiedziec czemu sie zawiesza po nacisnieniu przycisku i jak to poprawic, bo ja juz siedze 2 h i nic;/ ( i metoda wrzucenia wszystko pod jedna klas odpada )
Kod:
import java.net.*;
import java.io.*;
import java.util.LinkedList;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

class serwis
    {
   public static void main( String arts[] )
       {
      cos be= new cos();
      }
   
   }
class cos
    {
   ServerSocket gniazdoSerwera=null;
   Socket gniazdo= null;
   mis tak;

   public cos()
        {
       tak = new mis();
       }
   void go()
       {
      try
          {
         gniazdoSerwera= new ServerSocket( 6776 );
         }
      catch( IOException e )
          {
         tak.dodaj("OK");
         }
      try
          {
         gniazdo= gniazdoSerwera.accept();
         }
      catch( Exception e )
         {
         tak.dodaj("OK ");
         }
      //nic nie robi
      tak.dodaj("Nadeszlo polaczenie ");
      }
   class mis extends JFrame
       {
      Container kontener;
      JButton przycisk;
      JTextArea text;
      JPanel panel;
      public mis()
          {
         
         kontener= getContentPane();
   
         text= new JTextArea();
         

         text.setBounds( 100, 100, 200, 200 );
         kontener.setLayout( null );
         kontener.add( text );
         przycisk= new JButton( "fs" );
         przycisk.setBounds( 200, 200, 200, 200 );
         przycisk.addActionListener( new ActionListener()
             {
            public void actionPerformed( ActionEvent e )
                {
               go();
               }
            });
               kontener.add( przycisk );
         setSize( 1000, 1000 );
         setVisible( true );
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
         }
      void dodaj( String tekst )
          {
         text.append(tekst + "\n" );
         }
      }
   }
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
exeman
Mistrz grilla



Dołączył: 03 Lut 2006
Posty: 1603
Przeczytał: 0 tematów

Skąd: znienacka

PostWysłany: Śro 17:02, 17 Sty 2007    Temat postu:

Nie kodzilem nigdy w Javie socketow, ale wyglada na to, ze accept socketowy jest blokujący, zatem przywiesi Ci program zanim nie nadejdzie polaczenie i go nie acceptnie. Zrob to na osobny watku i bedzie ok.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
chlebek
alkoholik



Dołączył: 04 Lut 2006
Posty: 556
Przeczytał: 0 tematów

Skąd: Siedlce\Kraków

PostWysłany: Nie 19:40, 21 Sty 2007    Temat postu:

dzieki pomoglo, ale mam kolejny problem niby prosty, ale jedank nie dla mnie:
Jak tworze 2 obszary JTextArea i w jednym wysylam wiadomosc w w drugim wyswietlam to robie cos takiego:

drugi.append( pierwszy.getTex() );
pierwszy.setText("");

i wszystko jest podpiete pod klawisz ENTER i teraz kursor ustawia mi sie w polu pierwszy w 2 lini( tylko po kolejnych nacisnieciach entera nadal jest w 2 ), wiec jak zrobic zeby byl na poczatku okna pierwszy po wcisniciu ENTER ??
probowalem juz wszystkiego( google nie pomoglo ) ;/
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Nie 19:46, 21 Sty 2007    Temat postu:

nie za bardzo rozumiem, co masz na mysli, ale myślę, że będzie chodziło o coś takiego:
ja sprawdzałem, czy wciśnięty klawisz to enter i jeśli tak, to dodawałem tekst do okna wiadomości, a później w obsłudze tych klawiszy:
Kod:
e.consume();

co powoduje, że ignoruje tego entera ;]
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
chlebek
alkoholik



Dołączył: 04 Lut 2006
Posty: 556
Przeczytał: 0 tematów

Skąd: Siedlce\Kraków

PostWysłany: Nie 20:41, 21 Sty 2007    Temat postu:

dzieki dziala, ale jeszcze cos sie wali, bo na ekranie wyswietla napis i pusta linie pod nim
i tez nie wiem jak to obejsc, tak jakby jednokrotne wcisniecie enter wykonywalo sie 2 razy, ta sie to obejsc ?
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Nie 20:52, 21 Sty 2007    Temat postu:

eh ;] nie wiem jak to robisz, ale u mnie działało wszystko ok ;] a robisz to jako KeyPressed?
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
chlebek
alkoholik



Dołączył: 04 Lut 2006
Posty: 556
Przeczytał: 0 tematów

Skąd: Siedlce\Kraków

PostWysłany: Nie 21:01, 21 Sty 2007    Temat postu:

tak, ale z tego co patrze to on jakby zapisuje znak newline na koncu tekstu bo jak robie
text.append( konsola.getText() + "cos " )
to wyswietla mi tekst znajdujacay sie w konsola i w nastepnej lini " cos" ( czemu w nastepnej ;/)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Nie 21:20, 21 Sty 2007    Temat postu:

to może ten append() coś pieprzy, bo u mnie getText() działa normalnie
chyba że może sam dodajesz tam gdzieś "\n" ;] albo źle dałeś e.consume() ;]
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
chlebek
alkoholik



Dołączył: 04 Lut 2006
Posty: 556
Przeczytał: 0 tematów

Skąd: Siedlce\Kraków

PostWysłany: Nie 21:53, 21 Sty 2007    Temat postu:

e.consume() dodaje w metodzie keyPressed
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Nie 22:09, 21 Sty 2007    Temat postu:

to nie wiem, co to może być. jeśli to Ci jakoś pomoże, to ja mam coś takiego:

Kod:
   public void keyPressed(KeyEvent e) {
      if(e.getKeyCode()==KeyEvent.VK_ENTER) {
         if(ta.getText().length()>0) {
            Message m = new Message(ta.getText(),myLogin,login);
            showMessage(m);
            // wysylanie wiadomosci
         }
         e.consume();
         ta.setText("");
      }
   }
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
chlebek
alkoholik



Dołączył: 04 Lut 2006
Posty: 556
Przeczytał: 0 tematów

Skąd: Siedlce\Kraków

PostWysłany: Nie 22:31, 21 Sty 2007    Temat postu:

no jak to wrzucilem to dziala, dzieki, nie wiem co sie jebalo, moze w zlej czesci kodu wrzucilem ten consume, ale teraz smiga ;]
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Programowanie Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin