日期:2014-05-18  浏览次数:20652 次

100求:java Serializable 实现 不同电脑之间的通信 实例
小弟刚刚 做这个,现在公司急着我实现两台机器的数据交换:即 自己这边发送数据到另一边,另一边边接受处理后,返回给我一个信息,然后我在根据返回信息做处理。多谢各位了!

------解决方案--------------------
socket 编程啊
------解决方案--------------------
先把对象Serializable化后,已流的形式传到对方机器,对方收到后反Serializable就可以了
------解决方案--------------------
socket 可以实现
------解决方案--------------------
TO 楼主:
1、对于要传送的类,需要实现java.io.Serializable接口,仅仅声明实现就行了,不用实现任何方法。
2、发送和接受的双方,必须都包含此类的相同版本,否则接收方无法反序列化。
3、如果要传送的类里引用了其他对象,这些对象也必须实现了java.io.Serializable接口,而且发送和接受双方也都有这些类的相同版本。这条需要递归检查。
3、1楼2楼3楼说的没错,用socket就可以实现通讯。

------解决方案--------------------
1楼2楼3楼4楼说的没错,用socket就可以实现通讯。
------解决方案--------------------
TCP 和UDP 协议相关的类
Java中与网络相关的类存放在java.net包中
IP地址类
InetAddress
UDP协议对应的类
DatagramSocket
DatagramPocket
TCP类协议对应的类
ServerSocket(服务端)
SocketSocket(客户端)
InetAddress类
用于表示计算机的地址
常用方法
getHostAddressget
返回字符串格式的IP地址
getByNamegetByName
静态方法,用字符串构造一个静态方法,用字符串构造一个InetAddressInetAddress对象
DatagramSocketDatagramSocket类的构造方法
public DatagramSocketDatagramSocket()()
public DatagramSocket(intDatagramSocket(intport)port)
public DatagramSocket(intDatagramSocket(intport , port , InetAddressInetAddressladdrladdr) )
DatagramSocket类的方法
public void send(DatagramPacketsend(DatagramPacketp)p)
public void receive(DatagramPacketreceive(DatagramPacketp)p)
public void close()
DatagramPacketDatagramPacket类的构造方法
public DatagramPacket(byteDatagramPacket(byte[] [] buf,intbuf,intlength)length)
接收数据包
public DatagramPacket(byteDatagramPacket(byte[] [] buf,intbuf,intlength,InetAddresslength,InetAddressaddress,intaddress,intport)port)
发送数据包,指定目标发送数据包,指定目标IPIP地址和端口号地址和端口号
常用方法
getInetAddressget
getPortgetPort
getLength
举两个例子
import java.net.*;

public class UdpReceive//用于接收消息
{
public static void main(String[] args) throws Exception
{
DatagramSocket ds = new DatagramSocket(5000);
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
ds.receive(dp);
String message = new String(dp.getData(),0,dp.getLength()) + " from " + dp.getAddress() + ":" + dp.getPort();
System.out.println(message);
ds.close();
}
}
import java.net.*;

public class UdpSend//用于发送消息
{
public static void main(String[] args) throws Exception
{
DatagramSocket ds = new DatagramSocket();
String message = "Welcome to Java.";
DatagramPacket dp = new DatagramPacket(message.getBytes(),message.getBytes().length,InetAddress.getByName("127.0.0.1"),5000);
ds.send(dp);
ds.close();
}
}