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

📄 mysocketserver.java

📁 有大量的java的实例
💻 JAVA
字号:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
public class MySocketServer   	//Java Application主类
{
    public static void main(String[] args)
    {
	ServerService MyServer=new ServerService(8000,10);//建立监听服务
    }
}
class ServiceThread extends Frame implements Runnable
{    //当Client有请求时,Server创建一个Frame用于与之交互数据
  ServerService FatherListener; 	 //创建当前通讯线程的监听器对象
  Socket ConnectedClient;		 //负责当前线程中C/S通讯的Socket对象
  Thread ConnectThread;			 //负责通讯的线程
  Panel ListenerPanel;			 //本次通讯Server端的信息显示窗口
  TextArea ServerMeg;		     //信息显示窗口的文本区域
  public ServiceThread (ServerService sv, Socket s )//构造函数
  {
    FatherListener = sv;
    ConnectedClient = s;
    ConnectThread = new Thread(this);
    setTitle("Answer Client ");	   //建立并显示Server端信息显示窗口
    setLayout(new BorderLayout());
    ServerMeg = new TextArea(10,50);
    add("Center",ServerMeg);
    setResizable(false);				//不可改变窗口大小
    pack();
    show();			//获得请求服务的Client端计算机的IP地址
    InetAddress ClientAddress = ConnectedClient.getInetAddress();
    ServerMeg.append( "Client connected"+" from \n"+
                            ClientAddress.toString()+" .\n");
  }
  public void run()		  //子线程任务:与Client端通讯
  {
    try{
      BufferedReader in = new BufferedReader(  //获得从Client读入数据流
             new InputStreamReader(ConnectedClient.getInputStream()));
      PrintStream out = new PrintStream (	//获得向Client输出的数据流
             new BufferedOutputStream( ConnectedClient.getOutputStream()));
      out.println("Hello!Wellcome connect to our server!\r");
      out.flush();	//向Client端输出信息
      String s = in.readLine(); 		//从Client端读入信息
      while (!s.equals("Bye"))		//直至Client端表示要断开连接
      {   
        ServerMeg.append("Client端输入的信息为:\n"+ s);
	s = in.readLine();		//读入Client端写入的下一行信息
      }
      ConnectedClient.close(); 	//若Client端写入“Bye”则结束通讯
    }							//try
    catch(Exception e){}
    FatherListener.addMeg( "Client " + " closed." + "\n" );
    dispose();						//关闭当前通讯Frame
  }								//run()
}
class ServerService extends Frame	//服务器端的监听器窗口
{
    ServerSocket m_sListener;		//监听器
    TextArea ListenerMeg;			//显示信息的监听器窗口
    public ServerService(int Port,int Count)
    {
      try{
	    m_sListener= new ServerSocket(Port,Count);//建立监听服务
	    setTitle("Server Listener"); //建立监听服务的窗口并显示
            this.addWindowListener(new WinAdpt());
	    setLayout(new BorderLayout());
	    ListenerMeg = new TextArea("监听服务已经启动\n",10,50);
	    add("Center",ListenerMeg);
	    setResizable(false);
	    pack();
	    show();
	    while(true)
	    {
              Socket Connected = m_sListener.accept();//接受来自Client端的请求
	      InetAddress ClientAddress = Connected.getInetAddress();
              ListenerMeg.append( "Client " + " connected" + 
		    " from \n"+ ClientAddress.toString() + " .\n" );
		    //获得请求Client的IP并建立新线程新窗口与此Client通讯
	     ServiceThread MyST = new ServiceThread(this,Connected);		
	     MyST.ConnectThread.start();	//启动新线程
	    }
	  }
	catch(IOException e){}
    }
    public void addMeg(String s)	  //在监听器窗口中加入信息
    {
        ListenerMeg.append(s);
    }
}    //ServerSerive Class
class WinAdpt extends WindowAdapter
{
   public void windowClosing(WindowEvent e)
   {
	((Frame)e.getWindow()).dispose();
	System.exit(0);
   }
}

⌨️ 快捷键说明

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