Java Socket Demo
  TEZNKK3IfmPf 2023年11月14日 24 0

服务端:

Java Socket DemoJava 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());
}
}
}

View Code

客户端:

Java Socket DemoJava Socket Demo

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();
}
}

View Code

Java序列化反序列化工具类:

Java Socket DemoJava Socket Demo

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();
}
}

View Code

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: JS Date.Format 下一篇: WPF定时刷新UI界面
  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   19天前   43   0   0 java
  TEZNKK3IfmPf   2024年05月31日   54   0   0 java
TEZNKK3IfmPf