Ola gente,tudo bem?
estou com uma duvida criei um programinha pra faculdade pra enviar mensagens atraves de um soquete de um servidor para o cliente,porem estabelece a conexão com o cliente via soquete atraves de escuta de uma porta,porém so envia uma vez a mensagem não envia as outras,alguma boa alma pode me ajudar,fico muito grato:
segue código da aplicação servidor:
[code]
package conexao_rede;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.io.*;
import java.net.*;
public class servidor_rede {
JFrame frame;
JPanel panel;
PrintWriter writer;
JButton button;
Socket socket;
ServerSocket socketserver;
JTextArea area;
JTextField text;
JScrollPane jscroll;
public void go() {
panel = new JPanel();
button = new JButton("Send");
text = new JTextField(20);
area = new JTextArea(10,20);
frame=new JFrame();
jscroll = new JScrollPane(area);
jscroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
panel.add(BorderLayout.SOUTH, button);
jscroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
panel.add(BorderLayout.NORTH, text);
panel.add(BorderLayout.CENTER, jscroll);
frame.getContentPane().add(BorderLayout.CENTER,panel);
button.addActionListener(new pressionar_botao());
frame.setSize(400, 300);
frame.setVisible(true);
setupnetwork();
}
public void setupnetwork() {
try {
socketserver = new ServerSocket(6411);
while (true) {
socket = socketserver.accept();
System.out.println("conexão estabelecida na porta 4585");
}
} catch (IOException e) {
e.printStackTrace();
}
}
public class pressionar_botao implements ActionListener{
public void actionPerformed(ActionEvent e) {
try{
writer=new PrintWriter(socket.getOutputStream());
writer.println(text.getText());
area.setText(area.getText()+ "\n" + text.getText());
writer.flush();
}
catch(IOException w){
w.printStackTrace();
}
}
}
public static void main(String [] args){
servidor_rede servidor=new servidor_rede();
servidor.go();
}
}
[code]
código da aplicação cliente:
[code]
package conexao_rede;
import java.awt.BorderLayout;
import javax.swing.*;
import java.io.*;
import java.net.*;
public class cliente_red {
JFrame frame;
JTextArea text;
JPanel panel;
JScrollPane pane;
public void gui(){
text=new JTextArea(10,20);
pane=new JScrollPane(text);
panel=new JPanel();
frame=new JFrame();
pane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
panel.add(BorderLayout.CENTER,pane);
frame.getContentPane().add(BorderLayout.CENTER,panel);
frame.setSize(400,300);
frame.setVisible(true);
configurarrede();
}
public void configurarrede(){
try{
Socket socket=new Socket("127.0.0.1",6411);
InputStreamReader reader=new InputStreamReader(socket.getInputStream());
BufferedReader buffer=new BufferedReader(reader);
text.setText(buffer.readLine());
}
catch(IOException e){
e.printStackTrace();
}
}
public static void main(String [] args){
cliente_red cliente=new cliente_red();
cliente.gui();
}
}
[code]