Java中socket的代码模板

android利用socket与java后台交互的设计与实现 对于初学者,Android的网络通信是大家都喜欢但是又会感觉很难处理的模块。特别数据传输方面,初学者很可能犯一个很容易犯的错误,就是客户端通过字节数组或者对象与服务器端交换数据,但最后会发现它们都很不可行(用字节流时在与服务器端交互数据的时候很难操作控制,很难让服务器端知道什么时候应该开始下一步的处理;用对象交换数据的时候,交换要求是客户端和服务器端必须有类名、包名、内容完全相同的类,这样很难做到跨语言的通讯)。因此 阅读详情

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

1.ServiceServer.java

package bigdata.socket;

import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;

import org.apache.log4j.net.SocketServer;

public class ServiceServer {
	
	
	public static void main(String[] args) throws IOException {
		
		
		//创建一个serversocket ,然后绑定ip地址和端口号
		ServerSocket server = new ServerSocket();
		server.bind(new InetSocketAddress("lanc01", 8899));		
		//等待接受客户端的连接,阻塞程序
		while(true){	
			
			Socket accept = server.accept();//
			new Thread(new ServiceTask(accept)).start();
		}
	}
}

2.ServiceTask.java

package bigdata.socket;

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

public class ServiceTask implements Runnable{
	
	Socket socket;	
	InputStream inputStream = null;
	OutputStream outputStream = null;
	
	public ServiceTask(Socket accept) {
		this.socket=accept;
	}	
	//客户端业务数据通信处理
	@Override
	public void run() {
		
		try {
			//从socket连接中获取到与client之间的网络通信输入流
			inputStream = socket.getInputStream();
			outputStream = socket.getOutputStream();//输出流
			BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
			//从网络通信输入流中读取客户端发送过来的数据
			//注意:socketinputstream的读书句的方法都是阻塞的
			String readLine = bufferedReader.readLine();
			//获取数据后业务处理
			DataProcess dataProcess = new DataProcess();
			String result = dataProcess.getdata(readLine);
			
			//将处理完的数据写到socket的输出流中,然后发送给客户端
			//带回车的println,如果没有回车,就会一直读或者写,然后阻塞
			PrintWriter printWriter = new PrintWriter(outputStream);
			printWriter.println(result);
			printWriter.flush();			
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				inputStream.close();
				outputStream.close();
				socket.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}			
		}
	}

}

3.DataProcess.java

package bigdata.socket;

public class DataProcess {
	public String getdata(String param) {
		

		return "linux +++" + param;
		
	}

}

4.ServiceCliect.java

package bigdata.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class ServiceCliect {
	public static void main(String[] args) throws IOException {
		
		//建立socket向服务器发送连接请求
		Socket socket = new Socket("lanc01",8899 );
		InputStream inputStream = socket.getInputStream();
		OutputStream outputStream = socket.getOutputStream();
		//客户端向socket发送数据
		PrintWriter printWriter = new PrintWriter(outputStream);
		printWriter.println("==hello==");
		printWriter.flush();
		//读取数据
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
		String readLine = bufferedReader.readLine();
		System.out.println(readLine);
		
		inputStream.close();
		outputStream.close();
		socket.close();
		
	}

}

Java直连斑马打印机ZD888实战:Socket发送ZPL指令的极简方案 本文详细介绍了Java通过Socket直连斑马打印机ZD888的极简方案,重点讲解了ZPL指令的发送与中文处理技巧。文章提供了完整的Java实现代码,包括基础打印示例和高级功能封装,帮助开发者快速实现高效稳定的标签打印功能,特别适合仓储管理系统WMS等场景。 阅读详情

相关推荐

Java Socket 网络编程

一、网络编程简介网络编程:指在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。网络编程三要素:InetAddress 类表示 Internet协议(IP)地址。相关方法:代码示例: 三、UDP 编程 1. 发送端构造方法:相关方法:发送数据的步骤:代码示例: 2. 接收端构造方法:相关方法:接收数据的步骤:代码示例: 四、TCP 编程 1. 客户端Java 为客户端提供了 Socket 类,为服务器端提供了 ServerSocket 类。构造方法:相关方法:示例代码: 2. 服

悦分享 2754

超详细的逐句介绍Java网络编程之Socket类函数源码讲解(全)

一、Socket类 Socket 类表示通信双方中的客户端,用于呼叫远端机器上的一个端口,主动向服务器端发送数据(当连接建立后也能接收数据)。下面我将从源码的角度来介绍Socket类的内部原理及其方法。 二、Socket类源码介绍 首先,Socket类实现了java.io.Closeable的接口 public class Socket implements java.io.Closeable { } 下面定义了一些Socket的一些状态 private boolean created = fal

m0_43405302的博客 1991

java socket 开源代码_java socket类源码

【实例简介】【实例截图】【核心代码】package cn.itcast.utils;import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import java.io.InputStream;import java.io.InputStreamReader...

weixin_39673037的博客 255

手把手教你用SlowFast训练自定义手势识别数据集(附FFmpeg抽帧技巧)

本文提供了一份基于SlowFast架构训练自定义手势识别数据集的完整实战指南。文章重点剖析了数据准备的核心挑战,详细讲解了利用FFmpeg进行高、低帧率抽帧的技巧,并介绍了构建半自动标注流水线、生成符合SlowFast要求的AVA格式数据集文件的具体方法。最后,针对手势识别场景,给出了关键的模型训练配置与调优建议,帮助开发者高效完成从数据到模型的全流程。

s1t2u3的博客 909

android so文件攻防实战-美团libmtguard.so反混淆

接下来的代码很多都是这种动态计算跳转地址的。修复结束之后跟踪指令,0x3434处的代码跳到了0x345A,0x345A处的代码主要逻辑是在0x34C6跳到0x34EC通过0x34EC动态计算地址跳到了0x3520,0x3524处的代码跳到了0x365C,0x366E处的代码跳到了0x35A8,0x35A8是JNI_OnLoad的主要逻辑。BEQ和BNE是一对条件相反的跳转,这之前计算出接下来指令的地址0x3430赋值给R4,loc_340C处的代码通过POP指令将R4的值给PC,看0x3430处的代码。

2503_90751938的博客 1383

JAVA—socket编程

socket编程,是在不同的进程间进行网络通讯的一种协议,在socket编程中基于TCP、UDP等协议做的一层封装,是一套系统所提供的的用于进行网络通信的编程接口。

皮皮治不痞痞 1万+

手把手教你离线部署bert-base-uncased模型(附完整文件清单)

本文提供了一份详尽的bert-base-uncased模型离线部署指南。针对严格内网或无网络环境,文章不仅列出了包括config.json、pytorch_model.bin在内的完整必需文件清单,还详细解释了每个文件的作用,并给出了使用snapshot_download工具或手动下载的两种文件获取方法。重点阐述了如何正确设置本地路径、编写健壮的加载代码,并通过多层次验证确保模型在离线环境下成功运行,有效解决了部署过程中常见的文件缺失和路径错误问题。

weixin_29034963的博客 321

java socket 源代码_Java实现的基于socket通信的实例代码

服务器端代码:import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;public class Server {public static void main(String[] args) {ServerSocket serv...

weixin_28756021的博客 291

Lumerical FDTD新手必看:从零开始搭建光子晶体仿真环境(附完整脚本)

本文为Lumerical FDTD新手提供光子晶体仿真环境的完整搭建指南,涵盖从基础参数设置到脚本编写的全流程。通过典型光子晶体带隙分析案例,详细讲解结构建模、仿真参数配置及后处理技巧,并附赠完整MATLAB脚本,帮助用户快速掌握FDTD仿真核心技术。

3c4x5z6v7b的博客 1053

6、深入解析Microsoft 365核心服务对比与迁移策略

本文深入解析了Microsoft 365的核心服务,包括身份和设备管理、现代设备配置体验、Exchange和SharePoint的迁移策略以及Microsoft Teams的协作功能。同时探讨了迁移过程中需要考虑的安全控制措施,为组织规划和实施云迁移项目提供了全面的指导和建议。

k8s6orchestrator的博客 107

socket.io netty java,Java中的SocketIO Client,如何实现与netty-socketio Server一起工作?

for a practical course at university, I have to write a little game in Java, with a client/server infrastructure. I need to use Websockets for communication, and other students, whose solutions must b...

weixin_33510623的博客 361

C语言中errno与perror()函数

宏errno和perror()函数都是在stdlib.h中定义的。 1 stdlib.h头文件 stdlib.h头文件即standard library标准库函数头文件,包含了C、C++语言的最常用的系统函数,该文件中还包含了C语言标准库函数的定义。 2 errno宏 errno宏在stdlib.h中的定义为 #define errno (*_errno()) errno宏用于保存程...

hou09tian的博客 1万+

3|java socket整理

客户端和服务端一对一对话 ClientDemo package test4; //package com.jiaxun.net; import java.io.IOException; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class ClientDemo { public static v

weixin_43846020的博客 126

YOLO11改进|注意力机制篇|引入MLCA轻量级注意力机制

YOLO11中添加MLCA轻量级注意力机制

A1983Z的博客 4057

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

别再折腾官方SDK了!用Java Socket直连斑马ZD888打印机,5分钟搞定中文标签打印

本文介绍了如何通过Java Socket直连斑马ZD888打印机,快速实现中文标签打印。文章详细对比了不同集成方案的优缺点,提供了5行核心代码示例,并分享了模板化ZPL指令、在线调试工具Labelary以及生产环境优化建议,帮助开发者高效解决中文打印问题。

weixin_31742871的博客 269

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

简单聊天室 java_简单聊天室(java版)

这是本人从其他地方学习到的关于聊天室的一个模本,我从中截取了一部分关于客户端和服务端通信的Socket的内容。希望对大家对socket有个了解,我写的这些代码可以实现两人或多人在多台电脑上实现简单的对话。在运行时要先运行server(服务端),再运行client(客户端)。Windows获取自己电脑的ip需要再DOS(命令窗口)界面输入ipconfig或者再网络和共享中心已连接的网络查看详细信息。...

weixin_33551941的博客 274

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

逛了两天码云,搜集的优秀项目!

java 权限认证框架 sa-token https://gitee.com/sz6/sa-token 这可能是史上功能最全的Java权限认证框架! sureness https://gitee.com/tomsun28/sureness 一个开箱即用的高效认证鉴权框架,专注于restful api的动态保护 insp4j https://gitee.com/zengzhihong/insp4j 轻量级权限框架 JwtPermission https://gitee.com/w

shengzhang_的博客 810

Socket封装---模板方法类

在平时写网络代码的时候,经常会涉及到socket套接字的部分,这一部分用的十分频繁,但是流程都是固定的,我实在是饱受其苦,但是由于C++不像java一样有已经封装好的socket和serverSock类。所以我在想能不能自己把套接字封装一下,这样以后在使用的时候就会十分便捷。

电气工程专业本科生、辅修计算机。分享嵌入式、后端等方面的系统学习路径。 454

java socket通信,多线程聊天详解+示例代码

目录 写在前面 建立连接示例代码 socket通信示例代码 多线程聊天示例代码 更多示例代码请看我的其他博客或GitHub。不定期更新,学习过程中用到就写到哪里,作为模板供以后使用和复习。 写在前面 建立socket通信是客户端需要指定服务器的ip地址和端口,端口是自己指定的,执行下面方法可以获取本机的ip地址 public void showLocalHostAddress(...

qq_42145816的博客 616

java基于Socket设计一个Mail的收发客户端

这是一个很无聊的作业。大约花了我一天的时间。 介绍下实验工具 邮件服务器用winmail 编程工具用Eclipse 键盘是cherry的红轴机械键盘高键位(不伤手,用立白) 桌子是自由升降桌(站着编程,有利于身体骨骼健康)首先为了便于程序之间的数据交换,要先设计几个结构体 分别是 GlobalVar 用于存储全局数据,如服务器地址,端口号 UserInfo 存储用户的用户名和密码

bleuesprit的专栏 3426

Andorid 简单的socket 模板

Server端: 1 通过handler 与activity 通信。 2 启动一个thread, 等待client 连接和接收数据。 public class SocketServer implements Runnable{ private static final String TAG = "SocketServer"; private Context mConte...

weixin_42065195的博客 239

java socket接口文档_Java语言Socket接口用法详解

Socket接口用法详解在Java中,基于TCP协议实现网络通信的类有两个,在客户端的Socket类和在服务器端的ServerSocket类,ServerSocket类的功能是建立一个Server,并通过accept()方法随时监听客户端的连接请求。扩展:ServerSocket中常用的构造函数及方法构造函数:ServerSocket(int port) 这是一个构造方法,用于在当前的服务器默认的...

weixin_34805048的博客 631

java中socket编程实例_Java socket 入门编程实例

Java socket 入门编程实例这是一个C/S之间通信的例子,在JDK1.4下测试通过.//服务器端源程序tcpserver.javaimport java.io.*;import java.net.*;public class tcpserver{public static void main(String[] args) throws IOException{ServerSocket s...

weixin_40002238的博客 570

java socket外网连接_Java利用Socket进行远程过程调用

需求概述服务器上有一个getData()方法,客户端想调用服务器的getData()方法,此时必须通过RPC来进行调用了。WebService太冗余,为了提高性能,决定直接用socket进行实现。实现代码(Socket通讯模板代码)BusinessServer.javapackage com.mrbcy.bigdata.basic.socket;import java.io.IOException...

weixin_29061181的博客 849

Java Socket实现文件传输示例代码

这篇文章主要介绍了Java Socket实现文件传输示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 最近学Socket学上瘾了,就写了一个简单的文件传输程序。 客户端设计思路:客户端与服务端建立连接,选择客户端本地文件,先将文件名及大小等属性发送给服务端,再将文件通过流的方式传输给服务端。传输的进度打印到控制台中,直到传输完成。 服务端设计思路:

maguanghui_2012的专栏 4342
上一篇: 解决在使用adb是报错 : /android-sdk-linux/platform-tools/adb: 没有那个文件或目录 问题
下一篇: NIO的代码实现与分析
葫芦娃二娃
博客等级 码龄15年 1850粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值