• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. Java Socket網絡傳輸的序列化機制

        時間:2024-08-28 15:52:52 SUN認證 我要投稿
        • 相關推薦

        關于Java Socket網絡傳輸的序列化機制

          采用Java Socket網絡傳輸的序列化機制,將對象“壓扁”成二進制字節,將二進制字節在網絡中傳輸;

          自定義協議,將對象用字符串描述出來,將字符串用二進制表示,在網絡中傳輸,在另外一邊用相反的策略解析這個字符串,重新構造業務對象,這個方法能夠在異構平臺中進行傳輸而不變形,但是需要額外的編寫“壓扁”和“充氣”的代碼;

          我們這里用第一種方法:

          1.package stream.demo;

          2.import java.io.ByteArrayInputStream;

          3.import java.io.ByteArrayOutputStream;

          4.import java.io.File;

          5.import java.io.FileInputStream;

          6.import java.io.FileOutputStream;

          7.import java.io.IOException;

          8.import java.io.InputStream;

          9.import java.io.ObjectInputStream;

          10.import java.io.ObjectOutputStream;

          11.import java.io.OutputStream;

          12.import java.util.Date;

          13.public class Persistence {

          14.public static void main(String[] args) {

          15.byte[] bs = Persistence.toBytes();

          16.//在網絡中進行傳輸

          17.Persistence.getBytes(bs);

          18.}

          19.public static byte[] toBytes() {

          20.Person p = new Person();

          21.p.setName("corey");

          22.p.setTall(171);

          23.p.setBirthday(new Date());

          24.p.setAddress(new Address("yiyang", "ziyang"));

          25.ByteArrayOutputStream out = new

          ByteArrayOutputStream();

          26.try {

          27.ObjectOutputStream oout = new ObjectOutputStream(out);

          28.oout.writeObject(p);

          29.} catch (IOException e) {

          30.// TODO Auto-generated catch block

          31.e.printStackTrace();

          32.}

          33.return out.toByteArray();

          34.}

          35.public static void getBytes(byte[] bs) {

          36.try {

          37.ByteArrayInputStream byteIn = new

          ByteArrayInputStream(bs);

          38.ObjectInputStream in = new ObjectInputStream(byteIn);

          39.Person p = (Person) in.readObject();

          40.System.out.println(p.getName());

          41.System.out.println(p.getTall());

          42.System.out.println(p.getBirthday());

          43.System.out.println(p.getAddress().getCity());

          44.System.out.print(p.getAddress().getStreet());

          45.} catch (Exception e) {

          46.// TODO Auto-generated catch block

          47.e.printStackTrace();

          48.}

          49.}

          50.}

          其中服務端代碼片段為:

          51.in = this.getRequestSocket().getInputStream();

          52.out = this.getRequestSocket().getOutputStream();

          53.byte[] bs = Persistence.toBytes();

          54.System.out.println("發送數字長度:"+bs.length);

          55.out.write(bs);

          56.this.getRequestSocket().close();

          57.客戶端代碼片段為:

          58.InputStream in = request.getInputStream();

          59.byte[] bin = new byte[200];

          60.int length = 0;

          61.while ((length = in.read(bin)) != -1) {

          62.System.out.println("length:" + length);

          63.Persistence.getBytes(bin);

          64.}

        【Java Socket網絡傳輸的序列化機制】相關文章:

        Java語言的特點和實現機制10-01

        PHP socket的配置08-04

        技術知識學習:網絡傳輸介質10-03

        JAVA認證基礎知識:基于反射機制的服務代理調用09-20

        PHP中如何使用socket進行通信08-21

        2016年JAVA認證基礎知識:基于反射機制的服務代理調用08-21

        Java與Java web的區別08-10

        簡單分析PHP中序列化用法介紹08-15

        電腦文件怎么傳輸到iPad07-30

        java習題及答案10-25

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 在线播放日本免费人成视频在线观看 | 亚洲色影视在线播放 | 婷婷一区二区三区 | 色五月五月丁香亚洲综合网人 | 伊人久久综合热线大杳 | 日本乱妇AⅤ在线观看 |