您的位置:首页 > 其它

编写Socket客户端和服务器程序,客户端发送一个包含多个数字的字符串给服务器,服务器排序后返回给客户端,要求服务器能连续不断地服务。

2015-08-11 08:31 573 查看
客户端执行: java NumberSender -i 127.0.0.1 -p 8888 -d 99|789|3|0|-66

服务器端回送的结果:-66|0|3|99|789

操作步骤:

(1)客户端程序NumberSender发送请求到服务器端,并带上参数;

(2)Socket服务器端NumberSocketServer程序拆分接收的数字;

(3)Socket服务器端对接收到的数字进行冒泡排序;

(4)Socket服务器端程序将结果返回给客户端;

(5)客户端程序NumberSender接收并显示。

Socket服务器端程序:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

public class NumberSocketServer {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
ServerSocket ss = new ServerSocket(8888);
while (true) {
Socket socket = ss.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
String line = in.readLine();
System.out.println("接收到的内容:" + line);
String[] array = line.split("\\|");
int[] num = new int[array.length];
for (int i = 0; i < num.length; i++) {
num[i] = Integer.parseInt(array[i]);
}
for (int i = 0; i < num.length - 1; i++) {
for (int j = i + 1; j < num.length; j++) {
if (num[i] > num[j]) {
int temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < num.length; i++) {
sb.append(num[i]);
if (i != num.length - 1)
sb.append("|");
}
PrintWriter out = new PrintWriter(socket.getOutputStream(),
true);
out.println(sb.toString());
out.close();
in.close();
socket.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

Socket客户端程序:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.net.UnknownHostException;

public class NumberSender {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Socket socket = new Socket("127.0.0.1", 8888);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("99|789|3|0|-66");
BufferedReader in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
System.out.println(in.readLine());
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: