欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java 使用UDP协议实现对象传输,javaudp,java使用UDP协议实

来源: javaer 分享于  点击 23986 次 点评:95

java 使用UDP协议实现对象传输,javaudp,java使用UDP协议实


java使用UDP协议实现对象传输

这是对象代码

package udp_object_test001;import java.io.Serializable;public class Bytearray implements Serializable{private String msg;public String getMsg() {    return msg;}@Overridepublic String toString() {    return "Bytearray [msg=" + msg + "]";}public void setMsg(String msg) {    this.msg = msg;}}

这是客户端

package udp_object_test001;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress;import java.net.SocketAddress;import java.net.SocketException;public class Client_test {    public static void main(String[] args) {        try {            DatagramSocket da=new DatagramSocket();            Bytearray b=new Bytearray();            b.setMsg("你好啊!");            byte[] by=new byte[1024*1024];            ByteArrayOutputStream bs=new ByteArrayOutputStream();            ObjectOutputStream bo=new ObjectOutputStream(bs);            bo.writeObject(b);            by=bs.toByteArray();                //System.out.println(new String(by));            DatagramPacket data=new DatagramPacket(by,by.length,new InetSocketAddress("localhost", 9099) );           da.send(data);           } catch (SocketException e) {            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

下面是UDP的服务器端代码:

package udp_object_test001;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;import java.util.Arrays;public class Server_test {    public static void main(String[] args) throws ClassNotFoundException {        try {            DatagramSocket da=new DatagramSocket(9099);            byte[] by=new byte[1024*1024];            DatagramPacket data=new DatagramPacket(by, by.length);            da.receive(data);            //by=data.getData();            //System.out.println("=====" + new String(data.getData()));            ByteArrayInputStream bs=new ByteArrayInputStream(data.getData());            ObjectInputStream os=new ObjectInputStream(bs);            Bytearray m = (Bytearray)os.readObject();        //  System.out.println(m+"-----");            System.out.println(m.getMsg());            //System.out.println(Arrays.toString(by));        } catch (SocketException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}
相关栏目:

用户点评