Java网络编程:Socket 通信
client----发送数据(输出流)------------(输入)-【管道流处理数据】-(输出)------接收数据(输入流)------server
URL:协议+IP+端口+资源位置
客户端:
-
InetAddress 获取本地IP:写入服务器的端口号:xxxx
-
创建一个Socket连接(丢入IP和端口)
-
发送消息IO流(socket.getOutputStream();)
- 关闭
服务器:
-
服务端的建立一个端口:ServerSocket
-
监听客户端发过来的信息:serverSocket.accept();
-
读取客户端的信息(信息对于服务器管道是写入-就是输入流):accept.getInputStream();
-
管道流获取数据处理
- 关闭
客户端:代码实现
1 package Demo1.JavaSe.javasocket; 2 3 import java.io.IOException; 4 import java.io.OutputStream; 5 import java.net.InetAddress; 6 import java.net.Socket; 7 import java.net.UnknownHostException; 8 9 //Socket编程客户端 10 public class JavaSocketClientG { 11 public static void main(String[] args) throws IOException { 12 Socket socket = null; 13 InetAddress ServerIP=null; 14 OutputStream outputStream=null; 15 try { 16 //1.要知道服务器端口号 17 ServerIP = InetAddress.getByName("127.0.0.1"); 18 //端口号 19 int port = 9999; 20 //2.创建一个Socket连接 21 socket = new Socket(ServerIP, port); 22 //3.发送消息IO流 23 //client----发送数据(输出流)------------(输入)-【管道流处理数据】-(输出)------接收数据(输入流)------server 24 outputStream = socket.getOutputStream(); 25 outputStream.write("你好,我发送信息过来了!!!".getBytes()); 26 27 28 } catch (UnknownHostException e) { 29 e.printStackTrace(); 30 } catch (IOException e) { 31 e.printStackTrace(); 32 }finally { 33 34 if (outputStream != null) { 35 outputStream.close(); 36 } 37 if (socket != null) { 38 socket.close(); 39 } 40 } 41 42 43 } 44 }
服务器:代码实现
package Demo1.JavaSe.javasocket; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; //Socket编程服务端 public class JavaServiceSocketG { //Ctrl+Alt+L 格式化代码 public static void main(String[] args) { //alt +enter 补全/提示 // Ctrl+Alt+O 优化导入的类和包 //ctrl+alt+t 选中,自动选择try-catch ServerSocket serverSocket=null; Socket accept=null; InputStream inputStream=null; ByteArrayOutputStream byteArrayOutputStream=null; try { //client----发送数据(输出流)------------(输入)-【管道流处理数据】-(输出)------接收数据(输入流)------server //1.服务端的有一个端口 serverSocket= new ServerSocket(9999); //2.监听客户端发过来的信息 accept= serverSocket.accept(); //3.读取客户端的信息(信息对于服务器管道是写入-就是输入流) inputStream= accept.getInputStream(); //4.管道流获取数据处理 byteArrayOutputStream= new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len; while ((len= inputStream.read(buffer))!=-1){ byteArrayOutputStream.write(buffer,0,len); } System.out.println(byteArrayOutputStream.toString()); } catch (IOException e) { e.printStackTrace(); }finally { try { if(serverSocket!=null){ serverSocket.close(); } if (accept!=null){ accept.close(); } if (inputStream!=null){ inputStream.close(); } if (byteArrayOutputStream!=null){ byteArrayOutputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
运行结果:
作者:隔壁老郭
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
Java入门到入坟
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!