学习了多线程,网络编程,lambda的使用
//服务器端
public class fuwuqi {
public static void main(String[] args) throws IOException, ClassNotFoundException {
try {
ServerSocket serverSocket = new ServerSocket(8888);
while (true) {
Socket clientsocket = serverSocket.accept();
System.out.println("服务器ok");
new Thread(() -> {
//while(true){
try{
InputStream inputStream = clientsocket.getInputStream();
OutputStream outputStream = clientsocket.getOutputStream();
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String receivedMessage = new String(buffer, 0, bytesRead);
System.out.println("收到消息:" + receivedMessage);
String responseMessage = "Hello,Client!";
outputStream.write(responseMessage.getBytes());
clientsocket.close();
}catch (Exception e){
e.printStackTrace();
}
//}
}).start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
//用户端
public class Main {
public static void main(String[] args) throws IOException {
try {
String serverAddress = "localhost";
int serverPort = 8888;
Socket clientSocket = new Socket(serverAddress, serverPort);
InputStream inputStream = clientSocket.getInputStream();
OutputStream outputStream = clientSocket.getOutputStream();
//Scanner scanner = new Scanner(System.in);
String message = "Hello,Client!";//scanner.next();
outputStream.write(message.getBytes());
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String receivedMessage = new String(buffer, 0, bytesRead);
System.out.println("收到服务器响应:" + receivedMessage);
clientSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
服务器端代码中自旋等待数据,接收数据后利用lambda创建线程,指定端口,创建了输入输出对象,接受用户端传来的数据,再关闭端口。用户端设置端口,IP,在与服务器建立连接,再关闭端口。
多线程可以并发处理需求
大概懂得lambda表达式的用法
大概了解搭建服务器的原理