2个回答
2013-08-26
展开全部
服务器!import java.awt.*;import java.awt.Dimension;import java.awt.Rectangle;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.net.*;public class Service extends JFrame implements ActionListener{ JPanel contentPane; JLabel jLabel2 = new JLabel(); JTextField jTextField2 = new JTextField("4700"); JButton jButton1 = new JButton(); JLabel jLabel3 = new JLabel(); JTextField jTextField3 = new JTextField(); JButton jButton2 = new JButton(); JScrollPane jScrollPane1 = new JScrollPane(); JTextArea jTextArea1 = new JTextArea(); ServerSocket server = null; Socket socket = null;BufferedReader instr =null;PrintWriter os=null ; //Construct the frame public Service() { jbInit(); } class MyThread extends Thread{//该线程负责接受数据 public void run(){ try{ while(true){ this.sleep(100); instr= new BufferedReader(new InputStreamReader(socket.getInputStream())); if(instr.ready()){ //检查是否有数据 jTextArea1.append("客户端: "+instr.readLine()+"\n"); sendData(instr.readLine()); } } }catch(Exception ex){} } } public void actionPerformed(ActionEvent e){ if(e.getSource()==jButton1){ int port=Integer.parseInt(jTextField2.getText().trim()); listenClient(port); } if(e.getSource()==jButton2){ String s=this.jTextField3.getText().trim(); sendData(s); } } private void listenClient(int port){//侦听 try{ if(jButton1.getText().trim().equals("侦听")){ server = new ServerSocket(port); jButton1.setText("正在侦听..."); socket=server.accept();//等待,一直到客户端连接才望下执行 sendData("已经成功连接。。。"); jButton1.setText("正在聊天..."); jTextArea1.append("客户端已经连接到服务器\n"); MyThread t=new MyThread(); t.start(); } }catch(Exception ex){ } } private void sendData(String s){//发送数据 try{ os= new PrintWriter(socket.getOutputStream()); os.println(s); os.flush(); if(!s.equals("已经成功连接。。。")) this.jTextArea1.append("Server:"+s+"\n"); }catch(Exception ex){ } } //Component initialization private void jbInit() { contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(null); this.setSize(new Dimension(540, 340)); this.setTitle("服务器"); jLabel2.setBounds(new Rectangle(22, 27, 72, 28)); jLabel2.setText("端口号"); jLabel2.setFont(new java.awt.Font("宋体", 0, 14)); jTextField2.setBounds(new Rectangle(113, 27, 315, 24)); jButton1.setBounds(new Rectangle(440, 28, 73, 25)); jButton1.setFont(new java.awt.Font("Dialog", 0, 14)); jButton1.setBorder(BorderFactory.createEtchedBorder()); jButton1.setActionCommand("jButton1"); jButton1.setText("侦听"); jLabel3.setBounds(new Rectangle(23, 57, 87, 28)); jLabel3.setText("请输入信息"); jLabel3.setFont(new java.awt.Font("宋体", 0, 14)); jTextField3.setBounds(new Rectangle(114, 60, 314, 24)); jTextField3.setText(""); jButton2.setText("发送"); jButton2.setActionCommand("jButton1"); jButton2.setBorder(BorderFactory.createEtchedBorder()); jButton2.setFont(new java.awt.Font("Dialog", 0, 14)); jButton2.setBounds(new Rectangle(440, 58, 73, 25)); jScrollPane1.setBounds(new Rectangle(23, 92, 493, 189)); contentPane.add(jTextField2, null); contentPane.add(jButton1, null); contentPane.add(jLabel3, null); contentPane.add(jTextField3, null); contentPane.add(jButton2, null); contentPane.add(jScrollPane1, null); contentPane.add(jLabel2, null); jScrollPane1.getViewport().add(jTextArea1, null); jButton1.addActionListener(this); jButton2.addActionListener(this); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ try{ socket.close(); instr.close(); System.exit(0); }catch(Exception ex){ } } }); } public static void main(String arg[]){ JFrame.setDefaultLookAndFeelDecorated(true); Service frm=new Service(); frm.setSize(600,600); frm.setVisible(true); }}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-26
展开全部
我这有 你的邮箱多少?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询