public class ClientTest {
@Test
public void testSocket() throws Exception {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(Inet4Address.getLocalHost(),2000));
System.out.println("已连接服务器");
System.out.println("客户端信息:" + socket.getLocalAddress() + "客户端端口:" + socket.getLocalPort());
System.out.println("服务器信息:" + socket.getInetAddress() + "服务器端口:" + socket.getPort());
try {
todo(socket);
} catch (Exception e) {
e.printStackTrace();
}
socket.close();
System.out.println("客户端已退出");
}
public static void todo(Socket socket) throws IOException {
String str = "{'name':'limu','age':'22'}";
JSONObject json = (JSONObject) JSONObject.parse(str);
OutputStream outputStream = socket.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream));
boolean flag = true;
do {
bw.write(json+"\n");
}while (flag);
}
}
public class ServerTest {
@Test
public void testServer() throws Exception {
ServerSocket server = new ServerSocket(2000);
System.out.println("服务器准备就绪");
System.out.println("服务器信息:" + server.getLocalSocketAddress() + "服务器端口:" + server.getLocalPort());
for (;;) {
Socket socket = server.accept();
ClientHander clientHander = new ClientHander(socket);
clientHander.start();
}
}
private static class ClientHander extends Thread {
private Socket socket;
private boolean flag = true;
ClientHander(Socket socket){
this.socket = socket;
}
@Override
public void run() {
super.run();
System.out.println("客户端信息:" + socket.getInetAddress() + "客户端端口:" + socket.getPort());
try {
BufferedReader socketInput = new BufferedReader(new InputStreamReader(socket.getInputStream()));
do {
String str = socketInput.readLine();
if ("bye".equalsIgnoreCase(str)){
flag = false;
}else{
JSONObject object= JSONObject.parseObject(str);
System.out.println(object.toString());
}
}while(flag);
socketInput.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("客户端已退出" + socket.getInetAddress() + "客户端端口:" + socket.getPort());
}
}
}