java程序间怎么进行通信
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章将为大家详细讲解有关java程序间怎么进行通信,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是socket?socket,中文翻译为套接字。它是一种对网
千家信息网最后更新 2025年02月08日java程序间怎么进行通信
这篇文章将为大家详细讲解有关java程序间怎么进行通信,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
什么是socket?
socket,中文翻译为套接字。它是一种对网络中不同主机上的应用进程(或者相同主机的不同应用进程)之间进行双向通信的端点的抽象。实际上就是两个网络各种通信连接中的端点。它的作用就是完成应用间的数据传输。
套接字技术简单的来讲就是通过socket,将两个应用进行连接,连接之后就能进行数据传输了。socket只是实现连接的方法。
小编认为套接字这个翻译并不能直接反映出这门技术的特点(过于生涩),socket可以被翻译为插座,而实际上套接字技术更像是软件上的"插座"和"插头"。汉语中的套接,是一种水管对接的技术,使用一个套接管将两端的水管连接起来,这种技术就叫套接,所以是不是能理解什么是套接字了呢?
怎么使用socket?
不同语言实现套接字的方式不同,java有专门实现套接字的包。只需要import
相应的包,就可以进行套接字编程。
创建socket连接后可以通过getInputStream()
和getOutputStream()
的方法来获取和发送socket之间传输的数据。
接下来就用一个实例代码来介绍一下怎么使用socket吧!
socket项目实战
server.java
import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class Server { public static void main(String[] args){ try { ServerSocket serverSocket = new ServerSocket(8888); //在8888端口上监听,看是否有连接请求过来 System.out.println("开启服务端"); Socket accept = serverSocket.accept(); //获取socket连接 System.out.println("有连接过来"+accept); Thread thread1 = new Thread(){//使用多线程来进行收发,线程1用来接收消息 @Override public void run() { try { InputStream inputStream = accept.getInputStream();//获取socket输入流 DataInputStream dataInputStream = new DataInputStream(inputStream); //把输入流封装在DataInputStream while (true){ String msg = dataInputStream.readUTF();//使用readUTF读取字符串 System.out.println("监听客户端消息: "+msg); } } catch (IOException e) { e.printStackTrace(); } } }; Thread thread2 = new Thread(){//线程2用来发送消息 @Override public void run() { try { OutputStream outputStream = accept.getOutputStream(); //打开输出流 DataOutputStream dataOutputStream = new DataOutputStream(outputStream); //把输出流封装在DataOutputStream中 Scanner scanner = new Scanner(System.in); while (true){ String strServer = scanner.next(); dataOutputStream.writeUTF(strServer);//使用writeUTF发送字符串 } } catch (IOException e) { e.printStackTrace(); } } }; thread1.start(); thread2.start(); thread1.join(); System.out.println("服务器关闭"); accept.close();//关闭单个socket连接 serverSocket.close(); //关闭这个socket 服务器 } catch (Exception e) { System.out.println("断开连接"); } }}
client.java
import java.io.*;import java.net.Socket;import java.util.Scanner;public class Client { public static void main(String[] args) { String host = "127.0.0.1";//目标电脑的ip地址,这里的地址是本机地址 int port = 8888;//目标电脑的端口 boolean flag = true; try { Socket socket = new Socket(host, port);//创建目标连接,传入ip地址和端口号 System.out.println("开启客户端"); Thread thread1 = new Thread() {//使用多线程方法来实行收发,线程1负责接收信息 @Override public void run() { try { InputStream inputStream = socket.getInputStream();//获取socket输入流 DataInputStream dataInputStream = new DataInputStream(inputStream); //把输入流封装在DataInputStream while (true) { String msg = dataInputStream.readUTF();//使用readUTF读取字符串 System.out.println("接收服务端消息: " + msg); } } catch (IOException e) { e.printStackTrace(); } } }; Thread thread2 = new Thread() {//线程2用来发送消息 @Override public void run() { try { OutputStream outputStream = socket.getOutputStream(); //打开输出流 DataOutputStream dataOutputStream = new DataOutputStream(outputStream); //把输出流封装在DataOutputStream中 Scanner scanner = new Scanner(System.in); while (true) { String str = scanner.next(); dataOutputStream.writeUTF(str);//使用writeUTF发送字符串 } } catch (IOException e) { e.printStackTrace(); } } }; thread1.start(); thread2.start(); thread1.join(); System.out.println("客户端关闭"); socket.close();//关闭这个socket } catch (Exception e) { System.out.println("断开连接"); } }}
关于"java程序间怎么进行通信"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
套接字
线程
技术
消息
通信
不同
地址
字符
字符串
封装
应用
服务
输入
输出
客户
客户端
就是
数据
方法
目标
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
保康农发行网络安全宣传
中维尚谷网络技术有限公司
服务器连接硬盘有什么作用
基于构建的软件开发方法
网络技术与基础实验报告
服务器手机管理
模块对数据库的作用
jr电脑软件开发
2022中小学网络安全
东莞市驰阳网络技术
大庆一岱互联网科技有限公司
金山区创新数据库服务商报价行情
网络安全工程师证书查询
安徽老邻居网络技术
可程序化交易的软件开发
进销存软件开发 数据库
服务器上要装什么防护软件
android数据库注册
我的世界服务器如何当管理
中山无限软件开发批发价格
全国第一个国家网络安全产业园区
网络技术开发记录
知网万方数据库怎么样
主服务器认证错误的是什么
网络安全网络道德主题班会
软件开发视频培训
吴江网络技术咨询有哪些
专业放心的服务器安全防护
无线网络技术的发展趋势
tbc服务器怎么维护