客户端
package socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.Socket;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SocketClient {
public static String _pattern = "yyyy-MM-dd HH:mm:ss SSS";
public static SimpleDateFormat format = new SimpleDateFormat(_pattern);
// 设置超时间
public static int _sec = 5;
public static void main(String[] args) {
System.out.println("-----------client-----------");
Socket socket = null;
try {
//与服务端建立连接
socket = new Socket("127.0.0.1", 8001);
socket.setSoTimeout(_sec*1000);
System.out.println(format.format(new Date()));
System.out.println("建立了链接\n");
//往服务写数据
Writer writer = new OutputStreamWriter(socket.getOutputStream());
System.out.println(format.format(new Date()));
System.out.println("我在写\n");
Thread.sleep(1000);
writer.write("有没有收到\n");
System.out.println(format.format(new Date()));
System.out.println("写完了,你收下\n");
writer.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(format.format(new Date()) + "\n" + _sec + "秒的时间,收到了么");
System.out.println(format.format(new Date()) + "\nServer" + br.readLine());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
服务器端
package socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SocketServer {
public static String _pattern = "yyyy-MM-dd HH:mm:ss SSS";
public static SimpleDateFormat format = new SimpleDateFormat(_pattern);
//设置超时时间
public static int _sec = 5;
public static void main(String[] args) {
System.out.println("-----------server-----------");
System.err.println(format.format(new Date()));
ServerSocket server;
try {
server = new ServerSocket(8001);
System.out.println("监听建立,等你上线\n");
Socket socket = server.accept();
System.err.println(format.format(new Date()));
System.out.println("建立了连接\n");
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
socket.setSoTimeout(_sec*1000);
System.out.println(format.format(new Date()) + "\n" + _sec + "秒的时间,快写\n");
System.out.println(format.format(new Date()) + "\nClient:" + br.readLine() + "\n");
Writer writer = new OutputStreamWriter(socket.getOutputStream());
System.out.println(format.format(new Date()));
System.out.println("我在写回复\n");
writer.write("收到\n");
Thread.sleep(10000);
writer.flush();
System.out.println(format.format(new Date()));
System.out.println("写完了\n\n\n\n");
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
System.out.println(format.format(new Date()) + "\n" + _sec + "秒没给我数据 我下啦\n\n\n\n\n");
e.printStackTrace();
}
}
}