Java Socket Demo
服务端:

package com.sux.demo; import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.List; public class TestServerSocket {
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
ReceiveThread receiveThread = new ReceiveThread();
receiveThread.start();
} } class ReceiveThread extends Thread { public void run() {
try {
ServerSocket serverSocket = new ServerSocket(8888);
while (true) {
Socket socket = serverSocket.accept();
receive(socket);
socket.close();
}
} catch (Exception e) {
e.printStackTrace();
}
} public void receive(Socket socket) throws IOException, ClassNotFoundException, InterruptedException {
InputStream inputStream = socket.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
BufferedInputStream bufferedInputStream = new BufferedInputStream(dataInputStream);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int len;
byte[] bytes = new byte[10240];
while ((len = bufferedInputStream.read(bytes)) > 0) {
byteArrayOutputStream.write(bytes, 0, len);
} System.out.println("Server端接收的数据:");
List<MyInfo> list = (List<MyInfo>) SerializeUtil.Deserialize(byteArrayOutputStream.toByteArray());
for (MyInfo myInfo : list) {
System.out.println(myInfo.toString());
}
}
}
客户端:

package com.sux.demo; import java.io.*;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List; public class TestSocket {
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
SendThread sendThread = new SendThread();
sendThread.start();
} } class SendThread extends Thread { public void run() {
try {
Socket socket = new Socket("127.0.0.1", 8888);
send(socket);
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
} private void send(Socket socket) throws IOException, InterruptedException, ClassNotFoundException {
List<MyInfo> list = new ArrayList<MyInfo>();
for (int i = 0; i < 5; i++) {
MyInfo myInfo = new MyInfo();
myInfo.setName("数据" + i);
myInfo.setCode(i);
list.add(myInfo);
} SocketUtil.Send(socket, list);
System.out.println("数据已发送");
}
} class SocketUtil { public static synchronized void Send(Socket socket, Object data) throws IOException, ClassNotFoundException, InterruptedException {
OutputStream outputStream = socket.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(dataOutputStream); byte[] bytes = SerializeUtil.Serialize(data); bufferedOutputStream.write(bytes);
bufferedOutputStream.flush();
}
}
Java序列化反序列化工具类:

package com.sux.demo;
import java.io.*;
public class SerializeUtil {
public static byte[] Serialize(Object object) throws IOException {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(object);
return byteArrayOutputStream.toByteArray();
}
public static Object Deserialize(byte[] bytes) throws IOException, ClassNotFoundException {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
return objectInputStream.readObject();
}
}
Java Socket Demo的更多相关文章
- java Socket实现简单在线聊天(一)
最近的项目有一个在线网页交流的需求,由于很久以前做过的demo已经忘记的差不多了,因此便重新学习一下. 我计划的大致实现步骤分这样几大步: 1.使用awt组件和socket实现简单的单客户端向服务端持 ...
- Java Socket聊天室编程(一)之利用socket实现聊天之消息推送
这篇文章主要介绍了Java Socket聊天室编程(一)之利用socket实现聊天之消息推送的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 网上已经有很多利用socket实现聊天的例子了 ...
- Java Socket编程基础篇
原文地址:Java Socket编程----通信是这样炼成的 Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Sock ...
- Java Socket传输数据的文件系统介绍
转自:http://developer.51cto.com/art/201003/189963.htm Java Socket传输数据在进行的时候有很多的事情需要我们不断的进行有关代码的学习.只有不断 ...
- 移动开发首页业界资讯移动应用平台技术专题 输入您要搜索的内容 基于Java Socket的自定义协议,实现Android与服务器的长连接(二)
在阅读本文前需要对socket以及自定义协议有一个基本的了解,可以先查看上一篇文章<基于Java Socket的自定义协议,实现Android与服务器的长连接(一)>学习相关的基础知识点. ...
- 实现服务器和客户端数据交互,Java Socket有妙招
摘要:在Java SDK中,对于Socket原生提供了支持,它分为ServerSocket和Socket. 本文分享自华为云社区<Java Socket 如何实现服务器和客户端数据交互>, ...
- JAVA通信系列一:Java Socket技术总结
本文是学习java Socket整理的资料,供参考. 1 Socket通信原理 1.1 ISO七层模型 1.2 TCP/IP五层模型 应用层相当于OSI中的会话层,表示层, ...
- JAVA Socket 编程学习笔记(二)
在上一篇中,使用了 java Socket+Tcp/IP 协议来实现应用程序或客户端--服务器间的实时双向通信,本篇中,将使用 UDP 协议来实现 Socket 的通信. 1. 关于UDP UDP协 ...
- JAVA Socket 编程学习笔记(一)
1. Socket 通信简介及模型 Java Socket 可实现客户端--服务器间的双向实时通信.java.net包中定义的两个类socket和ServerSocket,分别用来实现双向连接的cli ...
- Java Socket Server的演进 (一)
最近在看一些网络服务器的设计, 本文就从起源的角度介绍一下现代网络服务器处理并发连接的思路, 例子就用java提供的API. 1.单线程同步阻塞式服务器及操作系统API 此种是最简单的socket服务 ...
随机推荐
- 递归+记忆化递归+DP:斐波那契数列
递归:算法复杂度O(2^N) 1 int fib(int n) 2 { 3 if (n == 0) 4 { 5 return 0; 6 } 7 if (n == 1) 8 { 9 return 1; ...
- iNeuOS工业互联网操作系统,高效采集数据配置与应用
1. 概述 2. 通讯原理 3. 参数配置 1. 概述 某生产企业世界500强的集团能源管控平台项目建设,通过专线网络实现异地厂区数据集成,每个终端能源仪表都有IP地址,总共有1000多台能源表 ...
- 如何收集pod重启前现场
之前分享过几篇优化pod重启的文章,有朋友发私信问:看你的优化文章很过瘾,可否分享下如何收集pod重启前的现场. 案例分享-full gc导致k8s pod重启 记一次k8s pod频繁重启的优化之旅 ...
- 0x02.加密和编码
识别算法编码类型 看密文位数 看密文特征(数字.字母.大小写.符号等) 看当前密文存在的地方(web.数据库.操作系统等) 密码存储加密 md5:16位和32位由0-9和a-f组成的字符串 ,该加密方 ...
- Android OpenGL ES入门
1.OpenGL 和OpenGL ES OpenGL(Open Graphics Library)是一种用于渲染2D和3D图形的跨平台编程接口.OpenGL提供了一套标准的函数和接口,使开发人员能够在 ...
- c++学习,和友元函数
第一友元函数访问私有元素时不会显示,但是是可以调用的(我使用的是gcc10.3版本的)友元函数可以访问任何元素.就是语法你别写错了. 继承如果父类已经写了构造函数,子类一定要赋值给构造函数,要么父类就 ...
- [AGC59C] Guessing Permutation for as Long as Possible
Problem Statement A teacher has a hidden permutation $P=(P_1,P_2,\ldots,P_N)$ of $(1,2,\cdots,N)$. Y ...
- LeetCode132:分割回文串(DP、回文)
解题思路:有两个问点:1.如何快速当前字符串哪些的字串是回文:2.如何组合这些字串达到分割次数最少 针对问点1,可以开辟一个二维布尔数组 a[][],a[i][j]表示以索引i为起点,j为结束位置的字 ...
- 华企盾DSC邮件发送成功,但是不解密也没有任何提示(未添加白名单)
用Debugview监控整个过程,若日志中有信任邮箱未添加说明,白名单邮箱未添加或者添加错了(检查空格之类的或重新添加)
- java,ArrayList类
ArrayList 是一个数组列表,可以将多个对象放入数组中,是一个长度可变的集合,提供了增删改查的功能. public class Test2 { public static void main(S ...