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

📄 mysocketserver.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();
		InetAddress ClientAddress=ConnectedClient.getInetAddress();       //获得请求服务的Client端计算机的IP地址
		ServerMeg.appendText("Client connected"+"from\n"+ClientAddress.toString()+".\n");
    }
    public void run()                                      //子线程任务:与Client端通信
    {
		try{
			DataInputStream in=new DataInputStream(       //获得从Client读人数据流
				new BufferedInputStream(ConnectedClient.getInputStream()));
			PrintStream out=new PrintStream(              //获得向Client输入的数据流
			    new BufferedOutputStream(ConnectedClient.getOutputStream()));
			out.println("Hello!Welcome connect to our server!	\r");
			out.flush();
			String s=in.readLine();
            String d=in.readLine();
            int x=Integer.parseInt(s);
			int y=Integer.parseInt(d);
			int h=x+y;
			int j=x-y;
			int k=x*y;
			int l=x/y;

            while(true)
		    {
			    out.println("x"+"+"+"y"+"="+h+";"+"x"+"-"+"y"+"="+j+";"+"x"+"*"+"y"+"="+k+";"+"x"+"/"+"y"+"="+l+"\r");
				out.flush();

			}
		}
		catch(Exception e){}
		FatherListener.addMeg("Client"+"close."+"\n");
		dispose();
	}//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();
				InetAddress ClientAddress=Connected.getInetAddress();
				ListenerMeg.appendText("Client"+"connected"+"from\n"+ClientAddress.toString()+".\n");
				ServiceThread MyST=new ServiceThread(this,Connected);
				MyST.ConnectThread.start();
			}
		}
		catch(IOException e){}
	}
	public void addMeg(String s)
	{
		ListenerMeg.appendText(s);
	}
}//ServerService 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 + -