java Socket完美实例。。。

java 中socket与tcp udp 前几天在本区看到一个贴子,有人问,在Socket做服务器,在手机上用Http访问,如何实现。这个贴子,有十来个人回复了,可惜回复的都是:Socket使用TCP/IP协议,客户端用HTTP协议,不同协议不可能实现通讯。再可惜,那个贴子结了,要不然,我就可以回复了!在这里拿出来说一下,让大家不要再误会了(TCP/IP与HTTP不可通讯)     因为目前很多手机仍不支持MIDP2.0,只支持MIDP 阅读详情

java socekt 同步套节字编程主要用到java.net.Socket类,通常情况下我们需要socket的长连接模式。其次就是在连接的另一端断开之后需要及时响应。

对于连接的判断,socket提供的isClosed,isConnected等都是判断本地套节字的状态。要判断运程的连接,可以通过发送紧急数据来判断,紧急数据发送成功与否,就表示远程是否断开。

package org.noka.nsocket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class Nksocket extends Thread{
public String ip=null;//连接服务器的IP
public Integer port=null;//连接服务器的端口
private Socket socket=null;//套节字对象
private boolean close = false; // 关闭连接标志位,true表示关闭,false表示连接
private Integer sotimeout=1*1*10;//超时时间,以毫秒为单位
//------------------------------------------------------------------------------
public Nksocket(){
   init();
}
public Nksocket(String ip,Integer port){
   setIp(ip);
   setPort(port);
   init();
}

public void init(){
   try {
    InetAddress address = InetAddress.getByName(getIp());
    socket = new Socket(address,getPort());
    socket.setKeepAlive(true);//开启保持活动状态的套接字
    socket.setSoTimeout(sotimeout);//设置超时时间
    close=!Send(socket,"2");//发送初始数据,发送成功则表示已经连接上,发送失败表示已经断开
   }catch(UnknownHostException e) {
    e.printStackTrace();
   }catch(IOException e){
    e.printStackTrace();
   }
}

public void run() {
   while(true){
    //---------读数据---------------------------
    close = isServerClose(socket);//判断是否断开
    if(!close){//没有断开,开始读数据
     String readtext = ReadText(socket);
     if(readtext!=null && readtext.trim().length()>0){
      System.out.println("读取数据:"+readtext);
     }
    }
    //---------创建连接-------------------------
    while(close){//已经断开,重新建立连接
     try{
      System.out.println("重新建立连接:"+getIp()+":"+getPort());
      InetAddress address = InetAddress.getByName(getIp());
      socket = new Socket(address,getPort());
      socket.setKeepAlive(true);
      socket.setSoTimeout(sotimeout);
      close = !Send(socket,"2");
      System.out.println("建立连接成功:"+getIp()+":"+getPort());
     }catch(Exception se){
      System.out.println("创建连接失败:"+getIp()+":"+getPort());
      close=true;
     }
    }
   }
}

public Boolean Send(Socket csocket,String message){
   try{
    PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
    out.println(message);
    return true;
   }catch(Exception se){
    se.printStackTrace();
    return false;
   }
}

public String ReadText(Socket csocket){
   try{
    csocket.setSoTimeout(sotimeout);
    InputStream input = csocket.getInputStream();
    BufferedReader in = new BufferedReader(new InputStreamReader(input));
    char[] sn = new char[1000];
    in.read(sn);
    String sc = new String(sn);
    return sc;
   }catch(IOException se){
    return null;
   }
}

public Boolean isServerClose(Socket socket){
   try{
    socket.sendUrgentData(0);//发送1个字节的紧急数据,默认情况下,服务器端没有开启紧急数据处理,不影响正常通信
    return false;
   }catch(Exception se){
    return true;
   }
}

public static void main(String[] ags){
   Nksocket nksocket = new Nksocket("127.0.0.1",8089);
   nksocket.start();
}
//------------------------------------------------------------------------------
public String getIp() {
   return ip;
}
public void setIp(String ip) {
   this.ip = ip;
}
public Integer getPort() {
   return port;
}
public void setPort(Integer port) {
   this.port = port;
}
}



java socket通信-传输文件图… java 通信 socket 传输 文件 图片 -文件传输-图片传输 ClientTcpSend.java   客户端发送类 package com.yjf.test; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.net.InetSocketA 阅读详情

相关推荐

网上很多基于Socket的聊天实现都是不完整的,结合自己的经验写了个完整的Demo

网上很多基于Socket的聊天实现都是不完整的,结合自己的经验写了个完整的Demo

Java Socket几个简单的入门示例

Socket是面向网络传输层的编程接口,需要程序员直面网络连接,字节流的读写,数据包的解析等。其难点在于服务端的迸发性能处理、数据格式的定义与拆解,在程序底层的算法上会有一定要求,更加考验程序员的编程技巧。

杂七杂八 5236

socket通信完整实例

socket通信完整实例,客户端和服务器端代码实力

Java中socket的代码模板

java的的socket的代码编写与C 语言的不太一样,C 语言的代码简练有深度,java的写起来复杂,但是不是那么难懂,因此在这里记录一下模板,防止以后忘记,总共四个文件,分别是ServiceServer.java(用于创建socket服务器),ServiceTask.java(服务器所提供的业务),DataProcess.java(服务器业务数据处理),ServiceCliect.java(s...

hubbybob1专栏 1723

30秒精准解析论文PDF:PyMuPDF4LLM+Qwen2本地Agent实战指南

PDF文献解析是科研信息处理的基础能力,其本质是将非结构化文档转化为可计算的语义结构。传统OCR方案在原生PDF(如LaTeX导出)上精度低、容错差;而基于PDF对象树的解析技术,能精准定位文本、公式、图表锚点与参考文献区块,为后续结构化提取提供高质量输入。结合轻量级领域微调模型(如Qwen2-1.5B-Instruct)与强约束提示词工程,可实现研究目标、方法框架、核心结果等五大要素的高保真蒸馏。该技术路径兼顾隐私安全、零成本复现与离线鲁棒性,特别适用于高校实验室、研究生课题组及AI初学者构建个人文献处理

weixin_33509203的博客 286

闲鱼客户端三重动态签名机制解析:x-sign、x-mini-wua与x-umt

在移动客户端安全通信中,设备级动态签名已成为主流App防范自动化攻击的核心手段。其原理是将设备指纹、运行时行为与可信硬件标识深度融合,生成不可复用、不可跨端、不可静态伪造的请求凭证。这类机制超越传统Token或Session鉴权,具备强上下文绑定性与实时熵值校验能力,广泛应用于电商、社交及开放平台等高风险接口场景。技术价值体现在有效识别模拟器、无头浏览器与集群化爬虫,同时保障多端一致性与合规数据对接。本文聚焦闲鱼客户端实际落地的x-sign(带设备上下文的混合签名)、x-mini-wua(小程序行为水印)与

weixin_35732273的博客 496

java Socket完美实例

java socekt 同步套节字编程主要用到java.net.Socket类,通常情况下我们需要socket的长连接模式。其次就是在连接的另一端断开之后需要及时响应。 对于连接的判断,socket提供的isClosed,isConnected等都是判断本地套节字的状态。要判断运程的连接,可以通过发送紧急数据来判断,紧急数据发送成功与否,就表示远程是否断开。 package org.nok...

weixin_30337251的博客 430

SDI-12协议与STM32 进行uart通信

其中DIR_OUT_SDI是一个IO引脚,控制UART_TX_SDI是否使能,U10是三态门IC,即拉低DIR_OUT_SDI使能stm32输出,拉高DIR_OUT_SDI失能输出,串口配置8位数据位,偶校验,1位停止位,1200波特率。示波器测试得到传感器的应答信号如下:第一个是唤醒信号,拉高电平13毫秒,之后保持20毫秒低电平,第二个数据帧是激活信号,即ascii码: "0!",第三个是传感器的应答信号:"0\r\n"

weixin_42186805的博客 4404

java socket 案例_java Socket完美实例

java socekt 同步套节字编程主要用到java.net.Socket类,通常情况下我们需要socket的长连接模式。其次就是在连接的另一端断开之后需要及时响应。对于连接的判断,socket提供的isClosed,isConnected等都是判断本地套节字的状态。要判断运程的连接,可以通过发送紧急数据来判断,紧急数据发送成功与否,就表示远程是否断开。package org.noka.nsoc...

weixin_32441957的博客 1102

省一蓝桥杯嵌入式-09RTC实时时钟

RTC(Real-Time Clock)实时时钟,是一个独立的定时器RTC模块拥有一组连续的计数的计数器,在响应软件配置下,可提供时钟、日历、闹钟功能RTC能提供年月日时分秒等信息(可设置)在系统复位或从待机模式唤醒后,RTC的设置时间维持不变(这个我没实现,复位后时间也重置了,有能力的可以自己研究一下)持续时间跟踪:在主系统断电后或处于低功耗模式时,RTC仍继续工作,原理是有额外的电池为其供电(蓝桥杯板子没有这个备用电源,该功能无效。

qq_46392331的博客 1729

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

fyihdg的专栏 1218

java socket学习

最简单的,使用socket获取铯原子钟时间的代码 static void getTime(){ Socket socket; try { socket = new Socket("time-A.timefreq.bldrdoc.gov",13); try{ InputStream inputStream = socket.getInputStream(); Scanner scan = new

416

用Python实现辅助病案首页主诊断编码:从数据清洗到模型上线(上)

本文介绍了一个使用Python构建AI辅助病案首页主诊断编码系统的完整指南。文章从环境搭建开始,详细讲解了数据准备与清洗策略,包括数据格式标准化、文本清洗与脱敏处理等关键步骤。系统采用深度学习技术处理复杂的医疗文本,解决ICD编码面临的文本复杂性、专业性和数据不一致性等挑战。文中提供了完整的代码实现,涵盖数据预处理、敏感信息脱敏、文本分割等实用功能模块,帮助医疗机构构建可落地、可扩展的智能编码系统,提高编码准确性和工作效率。

AllenLV的博客 924

java socket

server public class TcpServer {          public static void main(String[] args)throws IOException {         // TODO Auto-generated method stub         ServerSocket svrsoc=null;                      

好好工作,好好生活, 475

从0到1用OpenClaw打造酒店收益管理系统:数据整合→AI策略迭代全链路落地实战

本文基于三亚某连锁海景酒店真实项目落地经验编写,系统上线3个月,酒店平均入住率从62%提升至80%,RevPAR(平均可售房收入)提升26%,淡季空置率降低46%,完全覆盖中小酒店全场景收益管理需求。本文配套OpenClaw全量Skill代码、工作流配置文件,可直接复用落地。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 493

Transformer实战(39)——多模态生成式Transformer

能够理解多种类型输入的模型被称为多模态模型。多模态学习是人工智能 (Artificial Intelligence, AI) 领域的重要研究方向之一,长期受到众多研究人员的关注。本节将介绍使用多模态模型的生成式 AI,包括文本到图像 (text-to-image) 和文本到音乐 (text-to-music) 的生成模型。将介绍 Stable Diffusion 及其工作原理,同时也将介绍 MusicGen 和 AudioGen 模型。

盼小辉丶的博客 2456

Java Socket通讯客户端代码详解

Java Socket通讯一个相当广泛的使用,其实在有些时候我们在遇到困难的时候还是需要去找一找相关代码的介绍。最近工作需要,做了一点Java Socket通讯的东西,积累一点经验,与大家共分享。 其中通过短连接方式接收Java Socket通讯返回消息,死循环,分别判断接收和超时,来确定连接连接状况。通过字节流的形式获取socket返回消息,主要是因为通过readline的方式,在我们系统通讯中

u012729210的专栏 605

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java socket编程

一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。 目前较为流

u012729210的专栏 505

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java socket的超时设置

1、socket连接建立超时 socket连接建立是基于TCP的连接建立过程。TCP的连接需要通过3次握手报文来完成,开始建立TCP连接时需要发送同步SYN报文,然后等待确认报文SYN+ACK,最后再发送确认报文ACK。TCP连接的关闭通过4次挥手来完成,主动关闭TCP连接的一方发送FIN报文,等待对方的确认报文;被动关闭的一方也发送FIN报文,然等待确认报文。 正在等待TCP连接请求的一端有一

kf的专栏 1284

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

基于JAVA socket的服务器客户…

要完成这个工作,需要完成三个部分的工作,以下依次说明: 一、建立服务器类 Java中有一个专门用来建立Socket服务器的类,名叫ServerSocket,可以用服务器需要使用的端口号作为参数来创建服务器对象。 ServerSocket server = new ServerSocket(9998) 这条语句创建了一个服务器对象,这个服务器使用9998号端口即在端口9998上注册服务,这里

u012729210的专栏 524

转一篇很全的关于Java Socket…

源地址:http://www.cnblogs.com/jerrychoi/archive/2010/04/15/1712931.html Java学习总结之第十六章 Socket用法详解 一、构造Socket Socket的构造方法有以下几种重载形式: (1)Socket() (2)Socket(InetAddress address, int port)throws Unk

crxmai的专栏 575

java socket编程【转】

一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。 目前较

nihousheng的专栏 339

Java Socket通讯例子

服务端: package cn.itwoody.net; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.Ser

218

java POP3

package com.skyzoo.Jutil; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.Socket; import java.util.Vecto...

weixin_30808575的博客 135
上一篇: 认识BufferedReader的readLine、re…
下一篇: 利用nc构建telnet后门控制案例
kf
kf
博客等级 码龄25年 12粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值