server
package com.daidai.learn01;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server implements Runnable {
private ServerSocket serverSocket;
public Server(int port) throws IOException {
serverSocket = new ServerSocket(port);
}
@Override
public void run() {
while (true) {
try {
System.out.println("等待远程连接,端口号:" + serverSocket.getLocalPort() + "...");
Socket accept = serverSocket.accept();
System.out.println("已接收远程主机地址:" + accept.getRemoteSocketAddress());
DataInputStream dataInputStream = new DataInputStream(accept.getInputStream());
System.out.println(dataInputStream.readUTF());
DataOutputStream dataOutputStream = new DataOutputStream(accept.getOutputStream());
dataOutputStream.writeUTF("已接收 client msg bye.");
accept.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
try {
new Thread(new Server(9999)).start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
client
package com.daidai.learn01;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.text.SimpleDateFormat;
public class Client {
public static void main(String[] args) {
try {
Socket client = new Socket("localhost", 9999);
System.out.println("远程主机地址:" + client.getRemoteSocketAddress());
DataOutputStream dataOutputStream = new DataOutputStream(client.getOutputStream());
dataOutputStream.writeUTF("client date {" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(System.currentTimeMillis()) + "}");
DataInputStream dataInputStream = new DataInputStream(client.getInputStream());
System.out.println("服务器响应:" + dataInputStream.readUTF());
client.close();
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
}

被折叠的 条评论
为什么被折叠?



