EchoServer代码
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
public class EchoServer {
Integer port;
ServerSocket ss;
class ServiceThread extends Thread{
@Override
public void run() {
try {
ss=new ServerSocket(port);
while(true){
Socket s=ss.accept();
TongXinThread t=new TongXinThread(s);
t.start();
}
} catch (IOException e) {
System.out.println("服务停止");
}
}
}
public EchoServer(Integer port) {
this.port = port;
}
public void startService(){
ServiceThread s=new ServiceThread();
s.start();
}
}
class TongXinThread extends Thread{
private Socket s;
public TongXinThread(Socket s) {
this.s = s;
}
@Override
public void run() {
try {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS");
DataInputStream in=new DataInputStream(s.getInputStream());
DataOutputStream out=new DataOutputStream(s.getOutputStream());
while(true){
String str=in.readUTF();
out.writeUTF(str);
System.out.println(str);
out.writeUTF(sdf.format(new Date())+" "+str);
}
} catch (IOException e) {
System.out.println("一个客户离线");
}
}
}
客户端代码
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;
public class EchoClient {
private Integer port;
private String ip;
public void startService() {
try {
Socket s=new Socket(ip,port);
DataInputStream dis=new DataInputStream(s.getInputStream());
DataOutputStream dos=new DataOutputStream(s.getOutputStream());
while(true){
System.out.println("请输入要发送的消息");
String send=new Scanner(System.in).next();
dos.writeUTF(send);
String recive=dis.readUTF();
System.out.println("--->"+recive+"<---");
}
} catch (IOException e) {
System.out.println("未连接到服务器");
}
}
}