• java中的TCP SERVER代码


    package tcpserver;

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import com.borland.jbcl.layout.*;
    import java.net.*;
    import java.io.*;
    /**
     * <p>Title: TCPServer</p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2006</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */

    public class Frame1 extends JFrame implements Runnable
    {
      ServerSocket server=null;
        Socket socket=null;
        BufferedReader in=null;
        PrintWriter out=null;
        InetAddress myServer=null;
      JPanel contentPane;
      XYLayout xYLayout1 = new XYLayout();
      TextArea textArea1 = new TextArea();
      TextField textField1 = new TextField();
      Label label1 = new Label();
      JButton jButton1 = new JButton();
      JButton jButton2 = new JButton();

      //Construct the frame
      public Frame1() {
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      //Component initialization
      private void jbInit() throws Exception  {
        Thread thread=new Thread(this);
        thread.start();
        contentPane = (JPanel) this.getContentPane();
        contentPane.setLayout(xYLayout1);
        this.setSize(new Dimension(400, 300));
        this.setTitle("服务器端");
        label1.setText("消息:");
        textArea1.setText("");
        jButton1.setActionCommand("");
        jButton1.setText("发送消息");
        jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
        jButton2.setText("退出");
        jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));
        textField1.addKeyListener(new Frame1_textField1_keyAdapter(this));
        textField1.addActionListener(new Frame1_textField1_actionAdapter(this));
        contentPane.add(textField1,  new XYConstraints(78, 222, 274, 32));
        contentPane.add(textArea1,   new XYConstraints(3, 1, 395, 214));
        contentPane.add(label1,        new XYConstraints(37, 227, 75, 23));
        contentPane.add(jButton2,   new XYConstraints(290, 260, -1, -1));
        contentPane.add(jButton1, new XYConstraints(38, 259, -1, -1));
      }
      //Overridden so we can exit when window is closed
      protected void processWindowEvent(WindowEvent e) {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
          System.exit(0);
        }
      }
    public void run()
      {
        try{
          server=new ServerSocket(5438);
          socket=server.accept();
          in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
          out=new PrintWriter(socket.getOutputStream());
          if(socket!=null)
          {
            textArea1.append("system information:client have joined!\n");
            jButton1.setEnabled(true);
          }
          receiver r=new receiver();
          Thread t=new  Thread(r);
          t.start();
           }
           catch(Exception e)
           {
             textArea1.append(e.toString()+"\n");
           }
      }
    private class receiver implements Runnable
      {
        public void run()
        {
          String s1=null;
          try
          {
            s1=in.readLine();
            while(s1!="client exit!")
            {
              textArea1.append("client information:"+s1+"\n");
              s1=in.readLine();
            }
            in.close();
            out.close();
            socket.close();
            server.close();
          }
          catch(Exception e)
          {
            jButton1.setEnabled(false);
          }
        }
      }
      void jButton1_actionPerformed(ActionEvent e) {
            try {
              out.println(textField1.getText());
              out.flush();
              textArea1.append("server information:" + textField1.getText() + "\n");
              textField1.setText("");
            }
            catch (Exception ex) {
            }
          }

      void jButton2_actionPerformed(ActionEvent e) {
     try{
          out.print("server exit!");
          out.flush();
        }
        catch(Exception e2)
        {

        }
        finally{
          System.exit(0);
               }
      }

      void textField1_keyPressed(KeyEvent e) {
    int j=e.getKeyCode();
        if(j==e.VK_ENTER)
        {
          out.println(textField1.getText());
          out.flush();
          textArea1.append("server information:"+textField1.getText()+"\n");
          textField1.setText("");
        }
      }

      void textField1_actionPerformed(ActionEvent e) {
        try {
          out.println(textField1.getText());
          out.flush();
          textArea1.append("server information:" + textField1.getText() + "\n");
          textField1.setText("");
        }
        catch (Exception ex) {
        }

      }
      }

    class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener {
      Frame1 adaptee;

      Frame1_jButton1_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
      }
    }

    class Frame1_jButton2_actionAdapter implements java.awt.event.ActionListener {
      Frame1 adaptee;

      Frame1_jButton2_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton2_actionPerformed(e);
      }
    }

    class Frame1_textField1_keyAdapter extends java.awt.event.KeyAdapter {
      Frame1 adaptee;

      Frame1_textField1_keyAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
      }
      public void keyPressed(KeyEvent e) {
        adaptee.textField1_keyPressed(e);
      }
    }

    class Frame1_textField1_actionAdapter implements java.awt.event.ActionListener {
      Frame1 adaptee;

      Frame1_textField1_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.textField1_actionPerformed(e);
      }
    }

  • 相关阅读:
    题解 LNOI2014 LCA
    题解 P3413 【SAC#1
    题解 P3372 【【模板】线段树 1】(珂朵莉树解法)
    题解 P2610 【[ZJOI2012]旅游】
    题解 CF911D 【Inversion Counting】
    题解 CF1037D 【Valid BFS?】
    bootstrap常用部件下载
    sql获取上月同期
    VSS配置
    SQL中的union,except,intersect用法
  • 原文地址:https://www.cnblogs.com/josn1984/p/369959.html
Copyright © 2020-2023  润新知