java tcp通信-JAVA TCP通信,客户端给服务器发送java对象时报错

问题描述

JAVA TCP通信,客户端给服务器发送java对象时报错

我在做JAVA TCP 编程时,我想实现客户端A与客户端B之间通过服务器C来通信,但是我通过客户端A给服务器发送消息时,我传送的是一个java对象MsgPackage类对象,我通过ObjectOutputStream.writeObject来传送,但是服务器去读取这个对象时报错了,没有能正确读取到客户端发送过来的对象,请各位大神指教一下。错误的消息是这样:
java.lang.ClassNotFoundException: com.client.MsgPackage
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at com.server.ProcRequestThread.run(Server.java:79)
at java.lang.Thread.run(Thread.java:619)

时间: 2024-12-31 02:37:50

java tcp通信-JAVA TCP通信,客户端给服务器发送java对象时报错的相关文章

Go语言服务器开发之客户端向服务器发送数据并接收返回数据的方法_Golang

本文实例讲述了Go语言服务器开发之客户端向服务器发送数据并接收返回数据的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package mysocket    import (      "fmt"      "io"      "net"  )    func MySocketBase() {      var (          host   = "www.apache.org"         

android-安卓客户端向服务器发送的数据怎样保证安全

问题描述 安卓客户端向服务器发送的数据怎样保证安全 安卓客户端向服务器发送的数据怎样保证安全------------ 解决方案 (1)(4)就要求对服务器和客户端双向进行令牌或者证书验证 (2)可以用ssl等加密传输 (3)数字签名 解决方案二: 首先搞清楚为什么不安全. 主要的风险包括: (1)数据被发送到了不信任的服务器上 (2)数据被拦截监听 (3)数据被篡改 (4)客户端是假冒的

android-安卓客户端向服务器发送的http,服务器是怎样识别的

问题描述 安卓客户端向服务器发送的http,服务器是怎样识别的 安卓客户端向服务器发送的http,服务器是怎样识别的????----- 解决方案 不知道你说的识别是什么意思.用jsp或者asp.net等写一个服务器端,收到请求,包含用户名或者 token,然后判断. 解决方案二: 安卓客户端就相当你平时的web端,和正常的http请求是一样,Android端模拟http请求,你需要引入额外的jar httpclient相关jar包,具体的就不说了.期望对你有帮助. 解决方案三: 我也不懂你说的是

客户端调用服务器上的JMS报错

问题描述 1.com.ibm.ws.naming.util.HelpersWARNING:jndiGetObjInstNoopExceptioninthread"P=451515:O=0:CT"java.lang.ClassCastException:javax.naming.Referenceincompatiblewithjavax.jms.QueueConnectionFactoryatcom.ztesoft.oss.js.flowbus.client.Test.sendJms(

UDP多线程传输,为什么客户端向服务器发送数据,能收到;服务器向客户端发数据却不能收到?

问题描述 //客户端#include"stdafx.h"#include<winsock2.h>#include<iostream>#include<cstdlib>#pragmacomment(lib,"WS2_32")//链接到WS2_32.lib#defineBUFFERLEN256usingnamespacestd;classCInitSock{public:CInitSock(BYTEminorVer=2,BYTEmaj

Java中使用Socket发送Java对象实例_java

以前写聊天程序都是用字符串加个标志就直接发送到服务器,然后转发了. 现在要求我用对象流直接发送对象,测试了一下,记录一下. 其实我更倾向用json发送对象的,json说白了也是字符串,等有空了好好研究研究. 主要功能:客户端给服务器发送个对象,服务器接收到了打印出来.反过来是差不多了,就不写了. 上面是整体架构. User类就两个属性. 复制代码 代码如下: package com.qiantu.bean; import java.io.Serializable; public class Us

Socket 通信原理(Android客户端和服务器以TCP&amp;amp;&amp;amp;UDP方式互通)

ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当,还望指教. 一.Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据.而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求. 那

java客户端登陆服务器用户名验证_java

本文实例为大家分享了java客户端登陆服务器用户名验证的具体实现代码,供大家参考,具体内容如下 客户端通过键盘录入用户名,服务端对用户名进行验证. 如果用户名存在,服务端显示xxx已登录,客户端显示xxx,欢迎登陆. 如果用户名不存在,服务端显示xxx尝试登陆,客户端显示xxx,用户名不存在. 最多登陆三次,防止暴力登陆. import java.io.*; import java.net.*; /* *客户端 */ class client { public static void main(

java实现tcp的多客户端通信时,每个客户端只能通信一次

问题描述 java实现tcp的多客户端通信时,每个客户端只能通信一次 每个客户端与服务端只能通信一次,第二次通信就会抛出连接异常,求大神指导 解决方案 TCP多客户端通信实现java 客户端与c++服务器端tcp通信 demoTCP实现客户端和服务器的通信 解决方案二: 你可以在服务器端用一个HashMap来保存与客户端建立连接的socket 参考:http://blog.csdn.net/aiynmimi/article/details/47323165