⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program.java

📁 This is source rmi with java
💻 JAVA
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.net.*;

public class programClient extends JFrame implements ActionListener
  ,Runnable,Destroyable
{
  JButton butPort,butServer,butClient,ok;
  JTextField tf,tfPortClient,tfPortServer;
  static String strRequest="";
  int portServer=0,portClient=0;
  JLabel lblPortClient,lblPortServer,lblTitle;
  Container cp;

  DatagramSocket caroSocket=null;
  DatagramSocket caroSocket1=null;
  DatagramPacket inPacket=null;
  DatagramPacket outPacket=null;
  byte receiveData[]=new byte[1024];
  byte sendData[]=new byte[1024];

  sendMessage sm;
  String nameMatch="";
  Thread t;
  static programClient rc;

  public programClient()
     {
		super("Caro game") ;
		cp=getContentPane();
		cp.setLayout(null);
		cp.setBackground(new Color(141,165,181));

		sm=new sendMessage();
		sm.setSize(400,200);
		sm.butSend.addActionListener(this);
		sm.butCancel.addActionListener(this);
		sm.butHide.addActionListener(this);
		sm.butAnswer.setText("Accept");
		sm.butAnswer.addActionListener(this);


		butPort=new JButton("Invite");
		butPort.setMnemonic('E');
		butPort.setForeground(new Color(141,0,131));
		butPort.setBackground(new Color(0,209,255));
		butPort.setBounds(50,130,100,20);
		butPort.addActionListener(this);
		cp.add(butPort);

		ok=new JButton("Ok");
		ok.setMnemonic('O');
		ok.setBounds(170,130,100,20);
		ok.setForeground(new Color(141,0,131));
		ok.setBackground(new Color(0,209,255));
		ok.addActionListener(this);
		ok.setEnabled(false);
		cp.add(ok);

		butServer=new JButton("Server");
		butServer.setMnemonic('S');
		butServer.setBounds(210,70,100,20);
		butServer.setForeground(new Color(141,0,131));
		butServer.setBackground(new Color(0,209,255));
		butServer.addActionListener(this);
		cp.add(butServer);

		butClient=new JButton("Client");
		butClient.setMnemonic('C');
		butClient.setBounds(210,100,100,20);
		butClient.setForeground(new Color(141,0,131));
		butClient.setBackground(new Color(0,209,255));
		butClient.addActionListener(this);
		cp.add(butClient);

		lblTitle=new JLabel("Welcome to not and cross game");
		lblTitle.setFont(new Font("TimesNewRoman",Font.BOLD,18));
		lblTitle.setBounds(10,10,340,20);
		lblTitle.setForeground(new Color(225,54,197));
		cp.add(lblTitle);

		JLabel lblServerName=new JLabel("Play with Computer:");
		lblServerName.setBounds(10,40,120,20);
		lblServerName.setForeground(new Color(0,120,0));
		cp.add(lblServerName);
		tf=new JTextField();
		tf.setForeground(Color.blue);
		tf.setSelectedTextColor(Color.green);
		tf.setSelectionColor(Color.darkGray);
		tf.setText("localhost");
		tf.setBounds(130,40,150,20);
		cp.add(tf);


		lblPortServer=new JLabel("       You are:");
		lblPortServer.setBounds(100,70,150,20);
		lblPortServer.setForeground(new Color(0,106,102));
		cp.add(lblPortServer);

	    lblPortClient=new JLabel("  Or You are:");
		lblPortClient.setBounds(100,100,200,20);
		lblPortClient.setForeground(new Color(0,106,102));
		cp.add(lblPortClient);

		 try
		  {caroSocket1=new DatagramSocket(4455);
		   caroSocket=new DatagramSocket();}
		 catch(Exception e){System.err.println(e);}
		 t=new Thread(this);
		 t.start();

		this.addWindowListener(new WindowAdapter()
		    {
		     public void windowClosing(WindowEvent evt)
		       {System.exit(0);}
		    });
		this.setResizable(false) ;
	}
 public void actionPerformed(ActionEvent evt)
    {
	  String strAction=evt.getActionCommand();
	  if(strAction.equals("Invite"))
	     {sm.sendShow();ok.setEnabled(false);}
	  if(strAction.equals("Ok"))
	   {
		 try
		 {
	       String strMessage="Message :I am played!";
	       while(strMessage.length()<1024)
	            { strMessage+=" ";}
	       InetAddress serverAddress=InetAddress.getByName
	                                 ("255.255.255.255");
	 	   sendDataServer(strMessage,serverAddress);
	 	   clientServer(4567,7654,"Server",nameMatch.trim());
	     }
	     catch(Exception e){}
	   }
	  if(evt.getSource()==butClient)
	   {
		  if(tf.getText().trim().equals("")){}
		  else
		   {clientServer(7654,4567,"Client",tf.getText().trim());}
	   }
	  if(evt.getSource()==butServer)
	     {
			if(tf.getText().trim().equals("")){}
		    else
		    {clientServer(4567,7654,"Server",tf.getText().trim());}
		 }
	  if(evt.getSource()==sm.butSend)
	  	 {send();sm.butAnswer.setEnabled(false);  }
	   if(evt.getSource()==sm.butHide){sm.setVisible(false);}
	   if(evt.getSource()==sm.butCancel){sm.tfMessage.setText("");}
	   if(evt.getSource()==sm.butAnswer){answer();}
     }
 public void answer()
  {
	 try
	 {
	  InetAddress serverAddress=InetAddress.getLocalHost();
	  String strMessage=" "+serverAddress.getHostName();
	   while(strMessage.length()<1024)
	     { strMessage+=" ";}
	   nameMatch=nameMatch.substring(nameMatch.indexOf(" "));
	   serverAddress=InetAddress.getByName(nameMatch.trim());
	   sendDataServer(strMessage,serverAddress);
	   sm.setVisible(false);
	   clientServer(7654,4567,"Client",nameMatch.trim());
    }
    catch(Exception e){}
  }
 public void send()
 {
	if(sm.tfMessage.getText().trim().equals("")){}
	else
	 {
	   try
	     {
	        InetAddress serverAddress=InetAddress.getLocalHost();
	        String strMessage="Message :"+sm.tfMessage.getText();
	        strMessage+=" Playwith "+serverAddress.getHostName();
	 	    serverAddress=InetAddress.getByName("255.255.255.255");
	 		sendDataServer(strMessage,serverAddress);
	    	sm.setVisible(false);
		 }
	   catch(Exception e){}
	 }
 }
 public void clientServer(int serverPort,int clientPort,String name,
       String nameMatch)
    {
		   caroClient client=new caroClient(nameMatch,clientPort
		               ,serverPort,name);
		   client.setSize(790,570);
		   client.setVisible(true);
		   caroSocket.close();caroSocket.disconnect();
		   caroSocket1.close();caroSocket.disconnect();
		   this.setVisible(false);
		   if(!this.isDestroyed()){this.destroy();}
	}
public void receiveDataServer()
  {
	 String strReceive="";int index=10000;
	 try
	   {
	    inPacket=new DatagramPacket(receiveData,receiveData.length);
	    caroSocket1.receive(inPacket);
	    strReceive=new String(inPacket.getData());
       }
     catch(Exception e)
       {}
       strReceive=strReceive.trim();
      if(strReceive.startsWith("Message"))
        {
		 if(strReceive.indexOf("Playwith")>-1)
          {
			sm.butAnswer.setEnabled(true);
		    nameMatch=strReceive.substring(strReceive.indexOf("Playwith"));
		    strReceive=strReceive.substring(0,strReceive.indexOf("Playwith"));
		    sm.receiveShow(strReceive);
		    sm.butAnswer.setVisible(true);
		  }
		  else
		  {
			sm.receiveShow(strReceive);
			sm.butHide.setBounds(130,130,100,25);
		    sm.butAnswer.setVisible(false);
		  }
	   }
      else
       {
		 nameMatch=strReceive;
		 sm.receiveShow("Invitation is accepted !");
		 sm.butAnswer.setVisible(false);
		 sm.butHide.setBounds(130,130,100,25);
         ok.setEnabled(true);
       }
  }
 public void sendDataServer(String strSend,InetAddress serverAddress)
  {
	 try
	 {
	   while(strSend.length()<1024)
	     { strSend+=" "; }
	   sendData=strSend.getBytes();
	   outPacket=new DatagramPacket(sendData,sendData.length,
	  		                  serverAddress,4455);
	   caroSocket.send(outPacket);
     }
     catch(Exception e){System.out.println(e);}
  }
  public void run()
  {
	  while(true)
	  {
		  try
		  {
			 if(caroSocket1.isClosed()){}
			 else
			 { receiveDataServer();}
		  }
		  catch(Exception e){System.out.println(e);}
	  }
  }
  public void destroy(){ rc=null; }
  public boolean  isDestroyed()
  {
	  if(this==null){return true;}
	  else{return false;}
  }
  public static void main(String arg[])
   {
	 rc=new programClient();
	 rc.setSize(350,200);
	 rc.setVisible(true);
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -