java socket工具类
服务端
package server;import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;public class Servertools {private ServerSocket sersoc;public Socket clisoc[]=new Socket[20];private DataOutputStream out;private InputStream inFromClient;private DataInputStream in;/*** 服务端类构造方法* @param port*/Servertools(int port){try {sersoc=new ServerSocket(port);clisoc[0]=sersoc.accept();inFromClient = clisoc[0].getInputStream();in = new DataInputStream(inFromClient); } catch (IOException e) {e.printStackTrace();}this.read();//开启读取线程 }/*** socket服务端类发送消息方法* @param mes* @param clientsoc*/public void send(String mes,Socket clientsoc) {try {out = new DataOutputStream(clientsoc.getOutputStream());out.writeUTF(mes); }catch(IOException e) {System.out.println("socket~server发送失败:"+e); } }/*** socket服务端类读取消息方法*/public void read() {Readthread rt=new Readthread();rt.start();}/*** socket服务端读取线程类* @author Administrator**/public class Readthread extends Thread{public void run() {while(true){try {String tempstr=in.readUTF();//System.out.println("socket~client收到消息:"+tempstr); Server.readit(tempstr);//调用主类读取中断方法}catch(IOException e) {try {Thread.sleep(1000);} catch (InterruptedException ee) {ee.printStackTrace();}} } }}/*** socket服务端类关闭方法*/public void close() {try {out.close();clisoc[0].close();}catch(IOException e) {System.out.println("socket~server关闭失败:"+e);} }
}
在使用类中实现 "Server.readit(tempstr);//调用主类读取中断方法" 静态方法即可获得传输过来的数据Server为类名
客户端
package client;import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;public class Clienttools {private Socket clisoc;private OutputStream outtoserver;private DataOutputStream out;private InputStream inFromServer;private DataInputStream in;/*** socket客户端类构造方法* @param ip* @param port*/Clienttools(String ip,int port){try {//输出流区clisoc=new Socket(ip,port);outtoserver=clisoc.getOutputStream();out=new DataOutputStream(outtoserver); //输入流区inFromServer = clisoc.getInputStream();in = new DataInputStream(inFromServer); }catch(IOException e) {System.out.println("socket~client创建失败:"+e); }this.read();}/*** socket客户端类发送消息方法* @param mes*/public void send(String mes) {try {out.writeUTF(mes); }catch(IOException e) {System.out.println("socket~client发送失败:"+e); } }/*** socket客户端类读取消息方法*/public void read() {Readthread rt=new Readthread();rt.start();}/*** socket客户端读取线程类* @author Administrator**/public class Readthread extends Thread{public void run() { while(true){try {String tempstr=in.readUTF();//System.out.println("socket~client收到消息:"+tempstr); Client.readit(tempstr);//调用主类读取中断方法}catch(IOException e) {try {Thread.sleep(1000);} catch (InterruptedException ee) {ee.printStackTrace();}} } }}/*** socket客户端类关闭方法*/public void close() {try {out.close();outtoserver.close();clisoc.close();}catch(IOException e) {System.out.println("socket~client关闭失败:"+e);} }
}
同样在实用类中实现静态方法"Client.readit(tempstr);//调用主类读取中断方法" (Client为类名) 获得服务端传来的数据
需要不同类型的数据传输时,修改输出流的write方法即可.
声明:转载请注明出处,本人入门级菜鸟,内容大多学习于网络,存在问题太多不一一列举,大佬多多指教.本人QQ941131649
java socket工具类相关推荐
- Hutool Java常用工具类汇总
简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...
- JAVA常用工具类(实用高效)
JAVA常用工具类(根据GITHUB代码统计) 从Google你能搜索到大量的关于Struts,Spring,Hibernate,iBatis等比较大的框架的资料,但是很少有人去关注一些小的工具包,但 ...
- UrlUtils工具类,Java URL工具类,Java URL链接工具类
UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...
- Java并发工具类(闭锁CountDownLatch)
并发工具类系列: Java并发工具类(闭锁CountDownLatch) Java并发工具类(栅栏CyclicBarrier) Java并发工具类(信号量Semaphore) 闭锁是一种同步工具类,可 ...
- java日期工具类DateUtil
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. DateUtil类 [java] view plain copy package com.util; ...
- Java常用工具类StringUtils的常用方法
Java常用工具类StringUtils的常用方法 1.该工具类是用于操作Java.lang.String类的. 2.StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字 ...
- 组织机构代码和统一社会信用代码校验规则以及java校验工具类
组织机构代码 编码规则编辑 1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成. 本体代码采用系列(即分区段)顺序编码方法. 校验码按照以下公式计算: C9 ...
- 彻底理解Java并发:Java并发工具类
本篇内容包括:Java 并发工具类的介绍.使用方式与 Demo,包括了 CountDownLatch(线程计数器).CyclicBarrier(回环栅栏).Semaphore(信号量) 以及 Exch ...
- java 系统工具类 查询内存 CPU 系统基本信息 SysInfoUtils
java 系统工具类 查询内存 CPU 系统基本信息 SysInfoUtils maven依赖 <dependency><groupId>com.github.oshi< ...
最新文章
- Photoshop 混色模式学习
- windows下使用自带certutil工具校验文件MD5、SHA1、SHA256
- react-native-webview禁止缩放
- Flutter Dart 安装在window系统
- LeetCode 102二叉树的层序遍历103二叉树锯齿形遍历104二叉树的最大深度
- java中怎么用代码打出ASCII码字符_JAVA实现打印ascii码表代码
- SQL Server 数据库部分常用语句小结
- JS factory
- 【荐】万能清除浮动样式
- 剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)
- 腾讯推出微信公众平台企业服务平台风铃
- 网络工程制图论文计算机,计算机工程制图教学的课业评价的论文
- 以寡治众各个击破,超大文件分片上传之构建基于Vue.js3.0+Ant-desgin+Tornado6纯异步IO高效写入服务
- 8个接私活的网站,只要你有码,那“我”就有钱
- MT6573 android 系统默认语言处理流程
- 印章-公司印章制作生成器
- 对两个二进制数X2=x21,x22,„,x2n和X1=x11,x12,„,x1n进行比较的同步时序电路进行设计
- 用python实现水纹特效
- ubuntu16.04 创建用户,赋予权限
- 创建oracle的存储过程,以及通过JDBC调用该存储过程
热门文章
- Android: Canvas drawText()设置marginleft ,字体center_vertical的方法
- 如何在word 文件或者邮件中输入英语国际音标或KK音标?
- 【破文标题】企业报表处理软件(2005版)免光盘破解
- 全球金融的幕后大亨:家族办公室 | 深度报道
- 加权求和公式_从加权求和的角度来看kalman滤波
- wcs系统有哪些模块
- matlab中怎么判断一个pushbutton按钮是否按下,matlab的GUI 想问下 每个控件例如pushbutton的函数要怎么编写,函数与普通的m文件一样吗?...
- 多条件查询以及数据筛选
- CQF(量化金融)到底有多香?为什么越来越多人都去考?
- console线。com接口。SecureCRT 使用。什么是SSH。母头。