Search...
FAQs
Subscribe
Pie
FAQs
Recent topics
Flagged topics
Hot topics
Best topics
Search...
Search within Sockets and Internet Protocols
Search Coderanch
Advance search
Google search
Register / Login
Post Reply
Bookmark Topic
Watch Topic
New Topic
programming forums
Java
Mobile
Certification
Databases
Caching
Books
Engineering
Micro Controllers
OS
Languages
Paradigms
IDEs
Build Tools
Frameworks
Application Servers
Open Source
This Site
Careers
Other
Pie Elite
all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Campbell Ritchie
Jeanne Boyarsky
Ron McLeod
Paul Clapham
Liutauras Vilda
Sheriffs:
paul wheaton
Rob Spoor
Devaka Cooray
Saloon Keepers:
Stephan van Hulst
Tim Holloway
Carey Brown
Frits Walraven
Tim Moores
Bartenders:
Mikalai Zaikin
Forum:
Sockets and Internet Protocols
Problem append JtextArea
Huynh Tuan
Greenhorn
Posts: 2
posted 11 years ago
Number of slices to send:
Optional 'thank-you' note:
Send
I can use System.out.println().But I can't append text after receiving from the client.
package ServerSt; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import java.util.*; import java.net.*; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import static java.lang.System.out; @SuppressWarnings("serial") public class ServerSt extends JFrame implements ActionListener{ DataOutputStream dos; DataInputStream dis; Vector<String> users = new Vector<String>(); Vector<HandleClient> clients = new Vector<HandleClient>(); //Socket soc; //UI JPanel pane=new JPanel(); JTextArea txt=new JTextArea(10,10); JScrollPane src=new JScrollPane(txt); JButton btns=new JButton("Start"); JButton btnst=new JButton("Stop"); JTextField txtf=new JTextField(10); public ServerSt() { // TODO Auto-generated constructor stub setLayout(new GridLayout(10,1)); setSize(400,400); pane.add(btns); pane.add(btnst); add(pane); this.add(src); add(txtf); setVisible(true); btns.addActionListener(this); } public void actionPerformed(ActionEvent ae) { if(ae.getSource()==btns){ try { process(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } String name; public void process() throws Exception { ServerSocket server = new ServerSocket(9999,10); while( true) { Socket client = server.accept(); dos=new DataOutputStream(client.getOutputStream()); HandleClient c = new HandleClient(client); dos.writeUTF("server start"); dos.flush(); txtf.setText("asdjslkdjs"); //dis=new DataInputStream(client.getInputStream()); clients.add(c); //name=dis.readUTF(); //txt.append(name+" signed"); } // end of while } public void AppenT(String s) { txt.append(s+"\n"); } public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub new ServerSt(); } public void boradcast(String user, String message) { // send message to all connected users for ( HandleClient c : clients ) //c.sendMessage("server","hi"); if ( ! c.getUserName().equals(user) ){ c.sendMessage(user,message); } //txt.append(user+":"+message); } class HandleClient extends Thread { String name = ""; //BufferedReader input; DataInputStream input; //PrintWriter output; DataOutputStream output; public HandleClient(Socket client) throws Exception { // get input and output streams //input = new BufferedReader( new InputStreamReader( client.getInputStream())) ; input=new DataInputStream(client.getInputStream()); //output = new PrintWriter ( client.getOutputStream(),true); output=new DataOutputStream(client.getOutputStream()); // read name //name = input.readLine(); name=input.readUTF(); //JOptionPane.showMessageDialog(null, name); //sleep(1000); //txt.append(name); users.add(name); // add to vector System.out.println(name+" signed"); //txt.append(name+" signed"); //AppenT(name+" signed"); //txt.append(name); //txt.append(name+" signed"); start(); } public void sendMessage(String uname,String msg) { try { output.writeUTF(uname + ":" + msg); output.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String getUserName() { return name; } public void run() { String line; try { while(true) { line=input.readUTF(); if ( line.equals("end") ) { clients.remove(this); users.remove(name); break; } boradcast(name,line); // method of outer class - send messages to all //txt.append(name+":"+line); } // end of while } // try catch(Exception ex) { System.out.println(ex.getMessage()); } } // end of run() } // end of inner class } //
reply
reply
Bookmark Topic
Watch Topic
New Topic
Boost this thread!
Similar Threads
encrypt data in database
How to take Two files as input
socket programin in java
Input/Output Problem
encrypt data
More...