目录结构
client01
package client;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class client01 {
public static void main(String[] args) throws IOException {
String host = "127.0.0.1";
int port = 8889;
Socket socket = new Socket(host,port);
OutputStream outputStream = socket.getOutputStream();
String message = "哈哈哈哈哈哈哈!";
socket.getOutputStream().write(message.getBytes("UTF-8"));
System.out.println("发送成功!");
outputStream.close();
socket.close();
}
}
server01
package server;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class server01 {
public static void main(String[] args) throws IOException {
int port =8002;
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("开始等待....");
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
byte [] bytes = new byte[1024];
int len;
StringBuilder sb = new StringBuilder();
while ((len = inputStream.read(bytes))!=-1){
sb.append(new String(bytes, 0, len, "UTF-8"));
}
System.out.println("数据:");
System.out.println(sb);
inputStream.close();
socket.close();
serverSocket.close();
}
}
server02
package server;
import java.lang.String;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class server02 {
public static void main(String[] args) throws IOException {
int port = 8889;
ServerSocket serverSocket = new ServerSocket(port);
ExecutorService threadpool = Executors.newFixedThreadPool(100);
while(true){
Socket socket = serverSocket.accept();
Runnable runnable = ()->{
try {
InputStream inputStream = socket.getInputStream();
byte [] bytes = new byte[1024];
int len;
StringBuilder sb = new StringBuilder();
while ((len = inputStream.read(bytes))!=-1){
sb.append(new String(bytes, 0,len,"UTF-8"));
}
System.out.println("接受结果为:");
System.out.println(sb);
inputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
};
threadpool.submit(runnable);
}
}
}
server01为一般接受
server02开启线程池;使用的多线程方式