📄 zym10_server.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 + -