服务端
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Created by zansha on 17/9/22.
*/
public class SocketServer {
public static void main(String[] args) {
int port=8080;
if (args!=null && args.length>0){
port=Integer.valueOf(args[0]);
}
ServerSocket server = null;
try {
server = new ServerSocket(port);
Socket socket;
while (true){
socket = server.accept();
new Thread(new SocketThread(socket)).start();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (server!=null){
try {
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
import java.io.*;
import java.net.Socket;
import java.util.Date;
/**
* Created by zansha on 17/9/22.
*/
public class SocketThread implements Runnable {
private Socket socket;
public SocketThread(Socket socket){
this.socket = socket;
}
public void run() {
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String body ;
while (true){
body = bufferedReader.readLine();
if (body==null) break;
if ("end".equals(body)){
break;
}
System.out.println("the client message is :"+body);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (bufferedReader!=null){
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
客户端
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* Created by zansha on 17/9/22.
*/
public class SocketClient {
public static void main(String[] args) {
while (true) {
Socket socket = null;
PrintWriter printWriter = null;
try {
socket = new Socket("localhost", 8080);
printWriter = new PrintWriter(socket.getOutputStream(),true);
System.out.print("请输入发送内容:");
String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
printWriter.write(str);
printWriter.flush();
if ("end".equals(str)){
break;
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (printWriter!=null){
printWriter.close();
}
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}