Java 中 Socket 通信

C Socket与Java Socket之间的通信 问题描述:拟在服务器上利用c或c++来编写服务器端程序,在android手机上编写客户端程序,实现通过手机客户端来访问服务器上的资源。由于在c中socket的使用方式跟Java中有一些不同,c中的使用方式比较麻烦,java中相对简单。本文中服务器端的环境是linux。若是windows,C Socket的使用方式会稍有不同。 Socket介绍 Socket(套接字)相当于一种特殊的IO。只不过 阅读详情

1、在服务器端与客户端通信之前必须先保证服务器连接成功

a、创建一个服务器端程序 :

package com.sunplus.app;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TcpServer {
    private ServerSocket serverSocket = null;
    private final int port = 10004; 

    private static TcpServer instance = null;
    static {
        instance = new TcpServer();
    }

    private TcpServer() {
    }

    public static TcpServer getInstance() {
        return instance;
    }

    public static void main(String[] args) throws Exception {

        getInstance().createSocket();

    }

    private void createSocket() {
        try {
            serverSocket = new ServerSocket(port); // 设置服务器端口号
            getInfo();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 接收客户端数据
     */
    private void getInfo() {
        try {
            Socket socket = serverSocket.accept();
            InputStream in = socket.getInputStream();
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = in.read(buffer)) != -1) {
                System.out.println(new String(buffer, 0, len));
            }
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
b、创建一个客户端程序:

package com.sunplus.app;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class TcpClient {
    public static void main(String[] args) {
        writeData();
    }

    private static void writeData() {
        Socket socket = null;
        try {
            socket = new Socket("172.20.224.12", 10004);
            OutputStream os = socket.getOutputStream();
            os.write("Hello".getBytes()); // 向服务器发送数据
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (socket != null)
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }

    }
}


Java实现Socket双向通信 Java实现Socket双向通信服务端代码客户端实现常量类 服务端代码 /** * <p>项目名称:Socket双向通信</p> * <p>模块名称:Socket服务端</p> * 1、创建ServerSocket对象并绑定监听端口 * 2、调用serverSocket.accept(),作用:阻塞侦听客户端请求,并返回一个Socket对... 阅读详情

相关推荐

Java中的Socket通信

1.TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。 通常用于互联网协议,被称 TCP/IP。 2.Socket套接字使用TCP提供了两台计算机之间的通信机制。 客户端程序创建一个套接字,并尝试连接服务器的套接字。 3.当连接建立时,服务器会创建一个 Socket 对象。客户端和服务器现在可以通过对 Socket 对象的写入和读取来进行通信。 4.java.net.Socket 类代表一个套接字,并且 java.net.ServerSocket 类为服务...

qq_46291038的博客 1181

Socket介绍及使用Java实现socket通信

使用Java实现socket通信。

weixin_49561506的博客 2万+

Java与C#基于Socket通信

由于Java在网络方便的巨大影响力,以及微软推出的Framework .net平台的应用不断扩大,使得Java与C#的网络通信变得愈来愈重要。本文主要介绍java与c#的Socket通信。Java的Socket通信模块由于封装的比较高级,用起来也比较舒服。但是C#虽然有TcpClient等类库的支持,但是要与java实现底层的socket通信任然比较麻烦。本文基于C#的Socket模块与Java的

fuxpfuxp的专栏 799

基于 Java 简单实现 Socket 通信

J3 - 白起 技术(TCP/IP # UDP # Socket) 最近开了个项目:https://gitee.com/j3_baiqi/communication 欢迎大家指点一下项目结构、编码问题、业务方向????????????????????????。 一、什么是 Socket 百科: 白话就是,基于网络通信协议所制定的交互接口(接口就是规范)。 既然是接口,那必然就有实现,所以本次所有讲述的就是用 Java 来实现的一种 Socket 通信。但实现之前还是要铺垫一下两个网络通信中的重要协议:

技术分享、唠嗑水文、如有不周、还望海涵 6308

JAVA通信socket/websocket

什么是Socket? 什么是WebSocket? java websocket android websocket使用 RabbitMQ Socket,用于描述IP地址和端口,是一个通信链的句柄,在Internet上的主机一遍运行了多个服务软件,同时提供几种服务,每种服务都打开一个Socket,并绑定在一个端口上,不同的端口对应不同的服务。 Socket 连接手机,安卓需设置访问网络权限 端口被占用解决:http://blog.youkuaiyun.com/xiaanming/article/details/

seven的博客 3186

Android上JAVA Socket通信解析(一)初识socket通信

1.简介 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP通信协议在通信的两端各建立一个Socket,从而在通信的两端之间形成虚拟链路,一旦建立了虚拟链路,两端的程序就能够通过虚拟链路进行通信。 Java语言对于基于TCP协议的网络通信提供了良好的封装,Java使用

wolfboy2的专栏 1187

Java之Socket通信

一、TCP/IP协议 TCP/IP是目前世界上应用最为广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合 也称:TCP/IP协议族 或 TCP/IP协议栈 TCP:Transmission Control Protocol 传输控制协议 IP:Internet Protocol 互联网协议 TCP/IP模型 应用层的协议: HTTP 超文文传输协议 FTP 文件传输协议 SMTP 简单邮件传输协议 Telnet 远程登录服务 IP地址 ...

小男孩儿的博客 2131

java socket一对多通信编程

先介绍一些基本常识。socket是基于TCP/IP协议的。通过IP协议找到目的主机,在通过TCP协议完成数据链路的联通。然后开始收发数据。(当然,个人理解。若有不对,敬请指正) socket的输入流是阻塞式的。在没有接受到数据之前会阻塞线程。 在java中 新建一个服务器端socket: ServerSocket serversocket = new ServerSocket(Port);//指定端口 新建一个客户端socket: Socket socket = new Socket(“hostname

JhinDeng 1559

java下的socket通信与C/C++下的socket通信

JAVA下的socket通信: 关键点: 由Socket对象得到输入流(即由另一方发过来的数据),此时构造BufferedReader对象 由Socket对象得到输出流(即发往另一方的数据),此时构造PrintWriter对象 客户端: public class Client { public static void main(String[] args) throws

成年老猿的专栏 805

基于Java语言实现Socket通信

基于Java语言实现Socket通信由于近日项目需求,需要在服务器中增加Socket通信的功能,接收硬件设备发送的心跳包和相关数据,因此又重新对Java的网络编程进行了复习,根据项目的实际情况做了简化的编程,实现了简单的通信过程。1. Socket通信原理源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。 以下是通过Socket套接字实现客户端与

JimmyU1的专栏 5396

Java 网络通信之 Socket 编程全解析

Java 的 Socket 编程为开发者提供了强大的网络通信能力,通过Socket类和类可以方便地实现客户端与服务器之间的连接与数据交换。在实际应用中,需要深入理解网络通信的基本概念,合理处理数据传输、编码以及多线程并发等问题,才能构建出高效、稳定的网络应用程序。无论是开发小型的网络工具还是大型的分布式系统,掌握 Java 的 Socket 编程都是至关重要的一步,希望本文能够为广大 Java 开发者在网络编程的学习与实践中提供有益的参考与帮助。

Java&AI小吕布的博客 1261

Java使用Socket进行通信

文章目录1.使用ServerSocket创建TCP服务器端2.使用Socket进行通信3.demo展示 1.使用ServerSocket创建TCP服务器端   使用tcp通信的两个通信实体之间没有服务器端、客户端之分。java中能接收其他通信实体连接请求的类是ServerSocket,通过ServerSocket对象可以监听来自其他实体的socket连接,若没有连接,则ServerSocket对象...

wobushixiaobailian的博客 1098

C Socket与Java Socket之间的通信——信息与通信

要实现C Socket与Java Socket之间的通信,我们需要在C端和Java端使用相同的协议和数据格式。因此,在C端和Java端之间进行通信时,可以使用相同的协议和数据格式。当C Socket接收到客户端的连接请求后,它可以接收到来自JavaSocket的消息,并给予相应的响应。然后,它监听连接请求,并在接受到客户端连接后,接收客户端的消息,并发送响应给客户端。通过以上的C Socket服务器和Java Socket客户端的示例代码,我们可以在C语言和Java语言之间实现基于Socket的通信。

IunScala的博客 209

java整合socket通信全流程

Socket通信是计算机网络中常用的一种通信机制,它是基于TCP/IP协议实现的,提供了两个应用程序之间通过网络进行数据交换的能力

小金的博客 1209

生信入门(六)——单细胞分析(Seurat)

生信入门(六)——单细胞分析(Seurat) 文章目录生信入门(六)——单细胞分析(Seurat)一、数据导入1、数据来源2、数据导入二、标准预处理1、QC和选择细胞进行进一步分析2、规范化数据3、识别高度可变的特征(特征选择)4、缩放数据三、主成分分析(PCA)1、线性降维2、确定数据集的“维度”四、聚类细胞五、非线性降维(UMAP/tSNE)六、寻找差异表达的特征(簇生物标志物) 一、数据导入 1、数据来源 点击此处下载数据 数据说明:分析10X Genomics提供的外周血单细胞(PBMC)数据集,有

羊羊的博客 6万+

Coze HTTP请求节点实战:5分钟搞定天气API对接(含动态参数技巧)

本文通过一个天气预报API对接的实战案例,详细讲解了如何在Coze平台使用HTTP请求节点实现外部数据交互。文章重点演示了动态参数传递、JSON响应解析与错误处理等核心技巧,帮助开发者在5分钟内快速构建稳定可靠的智能体外部服务调用能力。

weixin_29233333的博客 675

java实现简单的Socket通信

先上一个简单的示意图,图中ServerSocket准确的说应该是Server。 Socket翻译成“套接字”比较难以理解,我觉得翻译称为插座比较合适, 两个程序可以通过插座之间通信,插进去就能联系上,至于Socket具体怎么实现的可以不用管,反正就是可以像电线一样传输数据就行! 首先是客户端,要先指定IP地址和port(端口)连接才能联系得上对应的服务器,因此,要想成功的联系上,就必须先把服务器启动了,再运行客户端,如果先启动了Client,就会爆“Exception, in ,thread “main”

weixin_46028606的博客 2149

1.30 Cubemx_STM32H743 SD_Card纳入文件管理系统

Cubemx_STM32H743 SD_Card纳入文件管理系统1、简介2、CubeMX配置 1、简介 和前面文章原理其实一样的。 1.29 Cubemx_STM32F429\H743 nandflash、spifalsh纳入文件管理系统 现在一并将SD卡、NandFlash、SPIFlash一并作为文件管理。 下面直接介绍SDcard,其他参考前面文章。 2、CubeMX配置 ...

oDuanYanGuHong的博客 1079

java socket 双向通信_java socket双向通信

服务器:import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.ne...

weixin_32652107的博客 276

DeerFlow 在 Windows 上的安装与启动详细步骤

DeerFlow Windows安装与启动指南 DeerFlow是基于LangGraph的AI Agent系统,包含后端服务和前端界面。后端安装需Python 3.12+,创建虚拟环境后安装依赖,需注意解决langgraph版本冲突问题(推荐1.0.8版本)。配置文件中需设置模型参数(如本地Qwen3-32B-AWQ模型)和sandbox配置。启动分为两步:LangGraph Server(端口2024)和Backend Gateway(端口8001)。前端要求Node.js 22+和pnpm,配置.env

笨小孩 581

避开模板匹配的坑:OpenCVSharp中边缘梯度算法的优化实践

本文深入探讨了OpenCVSharp中边缘梯度算法在模板匹配中的优化实践,解决了传统方法在尺度变化、角度旋转和光照差异下的局限性。通过Sobel算子提取边缘梯度特征,结合轮廓检测和多尺度匹配策略,显著提升了匹配的鲁棒性和准确性。文章还分享了并行计算、内存访问优化等实战技巧,适用于工业检测和自动化识别场景。

http9protocoller的博客 196

java的socket通信安全_JAVA-Socket通信笔记

JAVA - Socket从开学到现在 也学了三个月时间的java了,一直在 在 语法和基本使用上周旋,井底之娃一枚。 这两天 有学长指点,花了两天的时间 学习了java多线程和socket的简单使用,利用周末时间 自己写了个 Socket 多客户端的 Demo,有很多不成熟或者不好的 地方,请指正。TCP 的 Java 支持协议相当于相互通信的程序间达成的一种约定,它规定了分组报文的结构、交换方...

weixin_42402664的博客 505

FPGA原型验证(八):SoC设计适配与实现策略

时钟门控在SoC设计中很常见,应该小心处理门控时钟,以成功地在FPGA上原型化SoC设计。现代FPGA综合工具在正确约束的情况下,可以自动处理大多数门控时钟。通过遵循本章中的指导方针,即使具有复杂时钟门控的SoC设计也可以得到处理,并成功地在FPGA上进行原型化。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 477

Java中的Socket通信和HTTP通信有什麽不同

Socket通信和HTTP通信是两种不同的网络通信方式。Socket通信是一种面向连接的通信协议,可以传输任意格式的数据,而HTTP通信是一种基于TCP/IP协议的无连接的应用层协议,只能传输文本格式的数据。两种通信方式各有优缺点,选择哪种通信方式取决于具体的需求。

u013749113的博客 1287

SO_KEEPALIVE、TCP_KEEPIDLE、TCP_KEEPINTVL、保活包

是一个套接字选项,用于设置是否启用 keepalive 机制。在这段代码中没有涉及到选项的设置。当被设置为非零值时,表示启用 keepalive 机制。keepalive 是一种用于检测连接是否仍然有效的机制。通过定期发送一些特定的探测数据,可以检测到网络连接的异常中断或对端应用程序的崩溃退出。为了避免以上情况,可以启用 keepalive 机制,即使在无数据传输的情况下也定期发送探测数据。如果在一定时间内没有收到对端的响应,就认为连接已经失效,并进行相应的处理。要启用选项,需要使用函数。其中,fd。

m0_46376834的博客 4813

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: android 解析Json数据前期步骤
下一篇: Java 中的关键字的使用
冰糖心书房
博客等级 码龄15年 6014粉丝 690原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰糖心书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值