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

📄 zym10_server.java

📁 java写的cs架构的数字排序。客户端输入多个数字
💻 JAVA
字号:
import java.io.*;
import java.net.*;
public class zym10_Server
{    
	public static final int SERVERPORT = 9110;	
	public static void main(String[] args )
	{ 
	
	     try   { 
	            //已经连接上的客户端的序号。
			   int number = 1;
                    //建立服务器端倾听套接字。
			   ServerSocket s = new ServerSocket(SERVERPORT);
			   System.out.println("服务已开始: " + s);
			   while(true)
			   {      //等待并接收请求,建立连接套接字。
			      Socket incoming = s.accept( );
			      System.out.println("连接: " + number );
			      System.out.println(incoming);        
                    //启动一个线程来进行服务器端和客户端的数据传输。
                    //主程序继续监听是否有请求到来。
			  Thread t = new EchoThread(incoming, number);
			  t.start();
			  number++;
	             }
	                     }
		catch (IOException e)
		{  System.err.println("IOException");}
		}
		}
		
		
class EchoThread extends Thread
{	
    private Socket s;
    int n;
	public EchoThread(Socket incoming, int number)	
	{
		s = incoming;
	    n = number;
	}
	public void run()
	{  
	  try{
             BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));            
              PrintWriter out = new PrintWriter( new BufferedWriter(new OutputStreamWriter(s.getOutputStream())), true);
             while (true){ 
                     //从网络连接读取一行,即接收客户端的数据.
                      String line = in.readLine();
                     //如果接收到的数据为空,则退出循环,关闭连接。
                     if (line == null) //line数据
                         break;
                     
                     else{  
                         System.out.println("输出: " + n + ": " +line);        
                        //  向网络连接输出一行,即向客户端发送数据。            
                       
                        String line_sp[] = line. split(" "); //把客户端的字符拆分开存入line_sp[]
                        int[] line_A=new int[line_sp.length];//存储排序好的数组
                        
                        for(int i=0;i<line_sp.length ;i++)
                        {
                        	 //把String转化为int
                        	line_A[i]=Integer.valueOf(line_sp[i]).intValue();     	 
       	 
                        }
      
                        Sort sort = new Sort();
                        String out_A[] = new String[line_sp.length];//存放排序好的String数组
                        sort.SelectSort(line_A,line_sp.length);  //调入排序算法    
                        for(int i=0;i<line_sp.length ;i++) 
                        {      
       	                    //把排好序的数组从int转化为String
                            out_A[i] =String.valueOf(line_A[i]) ;  
                        }
      
                       for(int i=1;i<line_sp.length ;i++)
                       {
                       	  //连接字符串,out_A[line_sp.length]将是返回客户端
            	          out_A[i] = out_A[i-1]+","+out_A[i];
                       }  
             
		                out.println("已排序数字: " + out_A[line_sp.length-1]);// 返回给客户端
                   }//end of else
              }//end of while
      
             s.close(); //关闭套接字。
        }
        catch (IOException e)
           {  
               System.err.println("IOException");
            }
       }//end of run


}//end of class
 
 
 class Sort//排序类
{
 	public static void SelectSort(int A[] , int n) 
    {                           
       for(int n2=0; n2<n-1; n2++)
          {
          int  k=n2;
           for(int m2=n2+1; m2<n; m2++)
                if(A[m2]<A[k])    
                   { 
                     k=m2; 
                   }
              int   t2=A[k]; 
               A[k]=A[n2]; A[n2]=t2;                
          }           
   }
 }

⌨️ 快捷键说明

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