From 718b7f2d912dbd19e99a5a088423b3a5ce9f338f Mon Sep 17 00:00:00 2001 From: bingor_yhj Date: Fri, 5 May 2023 22:49:42 +0800 Subject: [PATCH] =?UTF-8?q?Bio=E7=BC=96=E7=A8=8B=E5=A4=8D=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradlew | 53 +++++++----------- gradlew.bat | 22 +------- src/main/java/com/msb/io/bio/BioClient.java | 56 +++++++++++++++++++ src/main/java/com/msb/io/bio/BioServer.java | 60 +++++++++++++++++++++ 4 files changed, 137 insertions(+), 54 deletions(-) create mode 100644 src/main/java/com/msb/io/bio/BioClient.java create mode 100644 src/main/java/com/msb/io/bio/BioServer.java diff --git a/gradlew b/gradlew index fbd7c51..af6708f 100644 --- a/gradlew +++ b/gradlew @@ -1,21 +1,5 @@ #!/usr/bin/env sh -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - ############################################################################## ## ## Gradle start up script for UN*X @@ -44,7 +28,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +DEFAULT_JVM_OPTS='"-Xmx64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -82,7 +66,6 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -126,11 +109,10 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -156,19 +138,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then else eval `echo args$i`="\"$arg\"" fi - i=`expr $i + 1` + i=$((i+1)) done case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -177,9 +159,14 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=`save "$@"` +APP_ARGS=$(save "$@") # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 5093609..6d57edc 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,19 +1,3 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -29,11 +13,8 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" +set DEFAULT_JVM_OPTS="-Xmx64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -84,7 +65,6 @@ set CMD_LINE_ARGS=%* set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - @rem Execute Gradle "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% diff --git a/src/main/java/com/msb/io/bio/BioClient.java b/src/main/java/com/msb/io/bio/BioClient.java new file mode 100644 index 0000000..2ce029e --- /dev/null +++ b/src/main/java/com/msb/io/bio/BioClient.java @@ -0,0 +1,56 @@ +package com.msb.io.bio; + +import jdk.internal.util.xml.impl.Input; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.Socket; + +/** + * @Author bingor + * @Date 2023-05-05 22:27 + * @Description: com.msb.io.bio + * @Version: 1.0 + */ +public class BioClient { + + public static void main(String[] args) { + + Socket socket = null; + OutputStream outputStream = null; + InputStream inputStream = null; + + try { + socket = new Socket("127.0.0.1", 8888); + outputStream = socket.getOutputStream(); + outputStream.write("服务端,你好,我是小袁".getBytes()); + + byte [] bytes = new byte[1024]; + inputStream = socket.getInputStream(); + int len = inputStream.read(bytes); + String msg = new String(bytes, 0, len); + System.out.println("客户端接收到的消息:" + msg); + + } catch (IOException e) { + e.printStackTrace(); + } finally { + + try { + if(socket != null) { + socket.close(); + } + if(outputStream != null) { + outputStream.close(); + } + if(inputStream != null) { + inputStream.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + + } + } + +} diff --git a/src/main/java/com/msb/io/bio/BioServer.java b/src/main/java/com/msb/io/bio/BioServer.java new file mode 100644 index 0000000..77f1753 --- /dev/null +++ b/src/main/java/com/msb/io/bio/BioServer.java @@ -0,0 +1,60 @@ +package com.msb.io.bio; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.net.ServerSocket; +import java.net.Socket; + +/** + * @Author bingor + * @Date 2023-05-05 22:10 + * @Description: com.msb.io.bio + * @Version: 1.0 + */ +public class BioServer { + + public static void main(String[] args) { + + ServerSocket serverSocket = null; + + try { + + serverSocket = new ServerSocket(); + serverSocket.bind(new InetSocketAddress("127.0.0.1", 8888)); + + while (true) { + Socket socket = serverSocket.accept(); + InputStream inputStream = socket.getInputStream(); + byte[] bytes = new byte[1024]; + int len = inputStream.read(bytes); + String msg = new String(bytes, 0, len); + System.out.println("服务端接收到客户端的信息:" + msg); + + OutputStream outputStream = socket.getOutputStream(); + outputStream.write("客户端,你好!".getBytes()); + outputStream.flush(); + + outputStream.close(); + inputStream.close(); + socket.close(); + } + + } catch (IOException e) { + e.printStackTrace(); + } finally { + + if(serverSocket != null) { + try { + serverSocket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + } + + } + +}