socket 获取回传信息_java中使用网络通信(Socket)来传输对象
服务端:package Work1;
/**
* 通过Socket通讯来传输对象序列
* 通过服务端接受到的流来恢复对象并通过toString显示出来对象的信息
*/
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class MySocketServer {
public static void main(String[] args) throws IOException, ClassNotFoundException {
ServerSocket serverSocket = new ServerSocket(5000);
Socket socket = serverSocket.accept();
//输入流加工
InputStream inputStream = socket.getInputStream();
ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);
Object obj = objectInputStream.readObject();
if (obj !=null){
System.out.println("--------正在解析接受到的对象-----------");
Dog dog = (Dog)obj;
System.out.println(dog.toString());
}else{
System.out.println("收到信息但无法解析到对象");
}
//回复客户端
OutputStream outputStream = socket.getOutputStream();
String info = "服务器:对象已经接受到";
outputStream.write(info.getBytes());
objectInputStream.close();
serverSocket.close();
inputStream.close();
socket.close();
}
}
客户端:package Work1;
import java.io.*;
import java.net.Socket;
public class SocketClient {
//客户端
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost",5000);
//我想发送一个对象给服务器
Dog dog = new Dog("黑豆",6);
OutputStream outputStream = socket.getOutputStream();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
objectOutputStream.writeObject(dog);
socket.shutdownOutput();
//接受服务器响应
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String reMsg = bufferedReader.readLine();
while (reMsg!= null){
System.out.println(reMsg);
reMsg = bufferedReader.readLine();
}
objectOutputStream.close();
socket.close();
}
}
Dog类:package Work1;
import java.io.Serializable;
public class Dog implements Serializable {
private String name;
private int age;
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
运行结果:
socket 获取回传信息_java中使用网络通信(Socket)来传输对象相关推荐
- socket 获取回传信息_基于netty框架的socket长连接负载均衡解决方案 oswl
前言 物联网如今是一个大的趋势,但是概念还比较新颖.大家对这一块的技术积累也比较匮乏,借此前段时间摩拜单车出现了大规模瘫痪的现象.我们今天来讨论一下物联网项目的开发方式. 关于tcp/ip 相关的知识 ...
- socket 获取回传信息_Luat系列官方教程5:Socket代码详解
文章篇幅较长,代码部分建议横屏查看,或在PC端打开本文链接.文末依然为爱学习的你准备了专属福利~ TCP和UDP除了在Lua代码声明时有一些不同,其他地方完全一样,所以下面的代码将以TCP长连接的数据 ...
- java前端长连接框架_Java中Spring Boot+Socket实现与html页面的长连接实例详解
Spring Boot+Socket实现与html页面的长连接,客户端给服务器端发消息,服务器给客户端轮询发送消息,附案例源码 功能介绍 客户端给所有在线用户发送消息客户端给指定在线用户发送消息服务器 ...
- Asp.Net获取客户端信息-学习中
学习中.高手飘过吧. 前台代码: <form id="form1" runat="server"> <div> < ...
- java获取异常信息_Python中获取异常(Exception)信息
异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...
- java 获取当前年_java中的反射(三) - kelexin
目录一.反射1.class类2.访问字段3.调用方法4.调用构造方法5.获取继承对象6.动态代理二.sping中的反射 本篇转自:本篇内容spring中的反射 java中的反射(一): java中的反 ...
- java微信获取用户信息_SpringBoot中获取微信用户信息的方法
前言 不知道你是否参加过拼多多上邀请微信好友砍价功能,这个功能实现首先需要考虑的就是获取微信用户的信息.获取用户信息就是获取公众号下微信用户的信息,今天我就来讲讲如何从公众号下获取微信用户信息. 需要 ...
- java socket 推送机制_Java中websocket消息推送的实现代码
一.服务层 package com.demo.websocket; import java.io.IOException; import java.util.Iterator; import java ...
- java根据手机号获取微信信息_Java实现的微信公众号获取微信用户信息示例
本文实例讲述了Java实现的微信公众号获取微信用户信息.分享给大家供大家参考,具体如下: 注: 这里获取用户信息方式和网页授权获取用户信息方式不同.两个access_token不同,返回的结果也不同. ...
最新文章
- 恭喜,五年时间再造一家赴美上市公司
- 量化指标公式源码_通达信实用指标:《看涨跌》指标公式源码
- 超微服务器双路主板系列,巨无霸核心!超微发布X12DPL系列服务器主板
- 实例浅析javascript call by value与call by reference
- silverlight下多线程处理
- 信息孤岛影响_企业专访:以“信息化”冲破信息孤岛
- mysql 子查询 in 多表_MySQL多表之子查询
- java中重载构造方法的例程_Java构造函数使用多种方法重载
- Simulink之PWM整流器
- 国王游戏【贪心算法】
- https://github.com/liuyi01/kubernetes-starterhttps://github.com/liuyi01/kubernetes-starter
- 20年磨一剑,南京大学周志华团队出版专著总结演化学习引领性研究(再次送书)...
- react class的写法
- 大四计算机系的,毕设该怎么下手?
- Nvme驱动补丁 解决Usb3.0/3.1驱动和磁盘控制器WIN7蓝屏方案
- HTML 与 CSS
- openjudge 1.3.10 计算并联电阻的阻值
- java nanotime 转秒_Java的nanoTime()
- 交换机Access端口,Trunk端口与Hybrid的区别与应用
- 使用MAT的命令行工具分析hprof文件