java.net 操练__教程 |
|
日期:2007-5-20 1:27:33 人气:164 [大 中 小] |
|
|
|
一个很简单的局域网聊天工具的服务器端
/*
* Created on 2005-3-18 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package netChat;
import javax.swing.*; import java.io.*; import java.net.*; import java.awt.*; import java.awt.event.*;
/** * @author AppleTian * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class server extends JFrame { private JTextField messageBox; private JTextArea infBox; private ObjectInputStream input; private ObjectOutputStream output; private ServerSocket server; private Socket serverSocket;
public server(){ super("server"); Container c=getContentPane();
messageBox=new JTextField(""); messageBox.setEnabled(false);
messageBox.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ sendData(e.getActionCommand()); }
}); c.add(messageBox,BorderLayout.NORTH);
infBox=new JTextArea(); infBox.setFont(new Font("Serif",Font.BOLD,12)); c.add(new JScrollPane(infBox),BorderLayout.CENTER);
setSize(500,400); setVisible(true);
}
/** * @param actionCommand */ protected void sendData(String actionCommand) { try{ output.writeObject(actionCommand); output.flush(); infBox.append("\nsend<<"+actionCommand+">> to client...\n"); } catch(IOException e){ infBox.append("\nExceptionIOInSendDataFunction..."); } } public void runServer(){ try{ server=new ServerSocket(5000,100); while(true){ waitForConnection(); getStreams(); processConnection(); closeConnection(); } } catch(EOFException e){ infBox.append("\nError in runServerFuction"); } catch(IOException e){ e.printStackTrace(); }
}
/** * */ private void closeConnection() throws IOException { infBox.append("\nclose connection..."); messageBox.setEnabled(false); output.close(); input.close(); serverSocket.close();
}
/** * */ private void processConnection() throws IOException { String mg="\nconnection succeful"; messageBox.setEnabled(true); output.writeObject(mg); output.flush();
do{ try{ mg=( String )input.readObject(); infBox.append("\nsend to client: "+mg); infBox.setCaretPosition(infBox.getText().length()); } catch(ClassNotFoundException e){ infBox.append("\n Unkown class received...");
} }while(mg!="end");
}
/** * */ private void getStreams() throws IOException { output=new ObjectOutputStream(serverSocket.getOutputStream()); output.flush();
input=new ObjectInputStream(serverSocket.getInputStream()); |
|
出处:本站原创 作者:佚名 |
|
|