「java数值包」java语言中的数据是如何定义的

博主:adminadmin 2023-03-22 07:58:11 638

今天给各位分享java数值包的知识,其中也会对java语言中的数据是如何定义的进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java如何编程实现,获取固定IP发来所有的数据包 ?

java获取固定IP发来所有的数据包,需要实现网络嗅探的部分功能:

代码如下;

/*******************

* JpcapTip.java

*/

package m;

import jpcap.PacketReceiver;

import jpcap.JpcapCaptor;

import jpcap.packet.*;

import jpcap.NetworkInterface;

import jpcap.NetworkInterfaceAddress;

//import java.net.InetAddress;

//import java.net.UnknownHostException;

public class JpcapTip implements PacketReceiver {

public void receivePacket(Packet packet) {

   System.out.println("********************************************");

   /*IP数据报报文头*/

   byte[] l=packet.header;     

   /*

   for (int t=0;t21;t++){

    System.out.print(l[t]+" *** ");

   }

   */

   String str="";

    System.out.print("报文头 : ");

    for (int i=0;il.length;i++) {

     //str=str+l;

     int m=0;

     m=l[i];

     m=m24;

     m=m24;

     str=str+Integer.toHexString(m);

     //System.out.print("     ***     "+l[i]);

    }

   System.out.println(str);

   int d=l.length;

   System.out.println("首部长度 :"+(d*8)+"bit");

  

   /*分析源IP地址和目的IP地址*/

   /*分析协议类型*/

   /**

   if(packet.getClass().equals(IPPacket.class)) {

    IPPacket ipPacket=(IPPacket)packet;

    byte[] iph=ipPacket.option;

    String iphstr=new String(iph);

    System.out.println(iphstr);

   }

   */

   if(packet.getClass().equals(ARPPacket.class))

   {

    System.out.println("协议类型 :ARP协议");

    try {

     ARPPacket arpPacket = (ARPPacket)packet;

     System.out.println("源网卡MAC地址为 :"+arpPacket.getSenderHardwareAddress());

     System.out.println("源IP地址为 :"+arpPacket.getSenderProtocolAddress());

     System.out.println("目的网卡MAC地址为 :"+arpPacket.getTargetHardwareAddress());

     System.out.println("目的IP地址为 :"+arpPacket.getTargetProtocolAddress());

} catch( Exception e ) {

     e.printStackTrace();

    } 

   }

   else 

    if(packet.getClass().equals(UDPPacket.class))

    {

     System.out.println("协议类型 :UDP协议");

     try {

      UDPPacket udpPacket = (UDPPacket)packet;

      System.out.println("源IP地址为 :"+udpPacket.src_ip);

      int tport = udpPacket.src_port;

      System.out.println("源端口为:"+tport);

      System.out.println("目的IP地址为 :"+udpPacket.dst_ip);

      int lport = udpPacket.dst_port;

      System.out.println("目的端口为:"+lport);

     } catch( Exception e ) {

      e.printStackTrace();

     } 

    }

   else

    if(packet.getClass().equals(TCPPacket.class)) {

     System.out.println("协议类型 :TCP协议");

     try {

      TCPPacket tcpPacket = (TCPPacket)packet;

      int tport = tcpPacket.src_port;

      System.out.println("源IP地址为 :"+tcpPacket.src_ip);

      System.out.println("源端口为:"+tport);

      System.out.println("目的IP地址为 :"+tcpPacket.dst_ip);

      int lport = tcpPacket.dst_port;

      System.out.println("目的端口为:"+lport);

     } catch( Exception e ) {

      e.printStackTrace();

     }

    }

   else

    if(packet.getClass().equals(ICMPPacket.class))

     System.out.println("协议类型 :ICMP协议");

   else

     System.out.println("协议类型 :GGP、EGP、JGP协议或OSPF协议或ISO的第4类运输协议TP4");

/*IP数据报文数据*/

   byte[] k=packet.data;   

   String str1="";

    System.out.print("数据 : ");

     for(int i=0;ik.length;i++) {

      //int m=0;

      //m=k[i];

      //m=m24;

      //m=m24;

      //str1=str+Integer.toHexString(m);

      str1 = new String(k);

      //str1=str1+k[i];

      //System.out.print("     ***     "+k[i]);

     }

     System.out.println(str1);

   System.out.println("数据报类型 : "+packet.getClass());

   System.out.println("********************************************");

}

public static void main(String[] args) throws Exception{

   // TODO 自动生成方法存根

  

   NetworkInterface[] devices = JpcapCaptor.getDeviceList();        //.getDeviceList();.

   //for (int i =0; idevices.length;i++) {

    int a=0;

    //try {

    /*本地网络信息*/

    byte[] b=devices[1].mac_address; //网卡物理地址

    //}

    //catch() {}

    System.out.print("网卡MAC : 00");   

    for (int j=0;jb.length;j++){

     //a=a8;

     a=b[j];

     a=a24;

     a=a24;

     System.out.print(Integer.toHexString(a));

    }

    System.out.println();

    NetworkInterfaceAddress[] k=devices[1].addresses;

   

    //System.out.println("网卡MAC : "+Integer.toHexString(a));

    for(int n=0;nk.length;n++) {

     System.out.println("本机IP地址 : "+k[n].address);     //本机IP地址

     System.out.println("子网掩码   : "+k[n].subnet);      //子网掩码

    }

    System.out.println("网络连接类型 : "+devices[1].datalink_description);

   //}

   NetworkInterface deviceName = devices[1];

   /*将网卡设为混杂模式下用网络设备deviceName*/

   JpcapCaptor jpcap =JpcapCaptor.openDevice(deviceName, 2000, false, 1);           //openDevice(deviceName,1028,false,1);

   jpcap.loopPacket(-1,new JpcapTip());

}

}

java中Socket如何实现数据包传输的打包和解包?

socket一般调用accept方法等待连接:

public class ServerThread extends Thread{

ServicePanel servicePanel = null;

ServerSocket serverSocket = null;

Socket socket = null;

public ServerThread(ServicePanel servicePanel,ServerSocket serverSocket) {

this.servicePanel = servicePanel;

this.serverSocket = serverSocket;

}

public void run(){

while (true) {

try {

socket = serverSocket.accept();//等待连接

new ReciveFromClient(servicePanel,socket).start();

} catch (IOException e) {

// e.printStackTrace();

break;

}

}

}

}

至于收包,发包是以流的形式传送的:

ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());

ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());

一般包里面的内容也就是被我们封装在某个类中,这个类要实现序列化,即实现Serializable接口;

发送方法那些就要自己写了~

如何使用java socket来传输自定义的数据包?

以下分四点进行描述:

1,什么是Socket

网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。

但是,Socket所支持的协议种类也不光TCP/IP一种,因此两者之间是没有必然联系的。在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。

2,Socket通讯的过程

Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client 端都可以通过Send,Write等方法与对方通信。

对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:

(1) 创建Socket;

(2) 打开连接到Socket的输入/出流;

(3) 按照一定的协议对Socket进行读/写操作;

(4) 关闭Socket.(在实际应用中,并未使用到显示的close,虽然很多文章都推荐如此,不过在我的程序中,可能因为程序本身比较简单,要求不高,所以并未造成什么影响。)

3,创建Socket

创建Socket

java在包java.net中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类,使用很方便。其构造方法如下:

Socket(InetAddress address, int port);

Socket(InetAddress address, int port, boolean stream);

Socket(String host, int prot);

Socket(String host, int prot, boolean stream);

Socket(SocketImpl impl)

Socket(String host, int port, InetAddress localAddr, int localPort)

Socket(InetAddress address, int port, InetAddress localAddr, int localPort)

ServerSocket(int port);

ServerSocket(int port, int backlog);

ServerSocket(int port, int backlog, InetAddress bindAddr)

其中address、host和port分别是双向连接中另一方的IP地址、主机名和端 口号,stream指明socket是流socket还是数据报socket,localPort表示本地主机的端口号,localAddr和 bindAddr是本地机器的地址(ServerSocket的主机地址),impl是socket的父类,既可以用来创建serverSocket又可 以用来创建Socket。count则表示服务端所能支持的最大连接数。例如:学习视频网

Socket client = new Socket("127.0.01.", 80);

ServerSocket server = new ServerSocket(80);

注意,在选择端口时,必须小心。每一个端口提供一种特定的服务,只有给出正确的端口,才 能获得相应的服务。0~1023的端口号为系统所保留,例如http服务的端口号为80,telnet服务的端口号为21,ftp服务的端口号为23, 所以我们在选择端口号时,最好选择一个大于1023的数以防止发生冲突。

在创建socket时如果发生错误,将产生IOException,在程序中必须对之作出处理。所以在创建Socket或ServerSocket是必须捕获或抛出例外。

4,简单的Client/Server程序

1. 客户端程序

import java.io.*;

import java.net.*;

public class TalkClient {

public static void main(String args[]) {

try{

Socket socket=new Socket("127.0.0.1",4700);

//向本机的4700端口发出客户请求

BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

//由系统标准输入设备构造BufferedReader对象

PrintWriter os=new PrintWriter(socket.getOutputStream());

//由Socket对象得到输出流,并构造PrintWriter对象

BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

//由Socket对象得到输入流,并构造相应的BufferedReader对象

String readline;

readline=sin.readLine(); //从系统标准输入读入一字符串

while(!readline.equals("bye")){

//若从标准输入读入的字符串为 "bye"则停止循环

os.println(readline);

//将从系统标准输入读入的字符串输出到Server

os.flush();

//刷新输出流,使Server马上收到该字符串

System.out.println("Client:"+readline);

//在系统标准输出上打印读入的字符串

System.out.println("Server:"+is.readLine());

//从Server读入一字符串,并打印到标准输出上

readline=sin.readLine(); //从系统标准输入读入一字符串

} //继续循环

os.close(); //关闭Socket输出流

is.close(); //关闭Socket输入流

socket.close(); //关闭Socket

}catch(Exception e) {

System.out.println("Error"+e); //出错,则打印出错信息

}

}

}

 2. 服务器端程序

import java.io.*;

import java.net.*;

import java.applet.Applet;

public class TalkServer{

public static void main(String args[]) {

try{

ServerSocket server=null;

try{

server=new ServerSocket(4700);

//创建一个ServerSocket在端口4700监听客户请求

}catch(Exception e) {

System.out.println("can not listen to:"+e);

//出错,打印出错信息

}

Socket socket=null;

try{

socket=server.accept();

//使用accept()阻塞等待客户请求,有客户

//请求到来则产生一个Socket对象,并继续执行

}catch(Exception e) {

System.out.println("Error."+e);

//出错,打印出错信息

}

String line;

BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

 //由Socket对象得到输入流,并构造相应的BufferedReader对象

PrintWriter os=newPrintWriter(socket.getOutputStream());

 //由Socket对象得到输出流,并构造PrintWriter对象

BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

 //由系统标准输入设备构造BufferedReader对象

System.out.println("Client:"+is.readLine());

//在标准输出上打印从客户端读入的字符串

line=sin.readLine();

//从标准输入读入一字符串

while(!line.equals("bye")){

//如果该字符串为 "bye",则停止循环

os.println(line);

//向客户端输出该字符串

os.flush();

//刷新输出流,使Client马上收到该字符串

System.out.println("Server:"+line);

//在系统标准输出上打印读入的字符串

System.out.println("Client:"+is.readLine());

//从Client读入一字符串,并打印到标准输出上

line=sin.readLine();

//从系统标准输入读入一字符串

}  //继续循环

os.close(); //关闭Socket输出流

is.close(); //关闭Socket输入流

socket.close(); //关闭Socket

server.close(); //关闭ServerSocket

}catch(Exception e){

System.out.println("Error:"+e);

//出错,打印出错信息

}

}

}

如何用java写数据包?

你好,java中的socket编程,要把数据最后转成byte[]来进行通信,对于你这种情况,我认为你至少有两种方法可行

1、在java中也整一个类对象,等效于你这里的struct,然后使用java中把Object转换成byte[]的方法

2、把struct里的数据按照一定的格式存成字符串,然后再把字符串转成byte[]

方法一可以参考下这个代码:

public static byte[] convertToByteArray(Object obj) throws IOException{

ObjectOutputStream os = null;

ByteArrayOutputStream byteStream = new ByteArrayOutputStream(5000);

os = new ObjectOutputStream(new BufferedOutputStream(byteStream));

os.flush();

os.writeObject(obj);

os.flush();

byte[] sendBuf = byteStream.toByteArray();

os.close();

return sendBuf;

}

java中如何将数据封装为JSON包?

java中将数据封装为JSON包,可以使用java提供的jsonArray这个工具类进行转换,代码如下:

package com.json;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

import org.apache.commons.beanutils.BeanUtils;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;

public class JSONUtils

{

/**

* @author wangwei JSON工具类

* @param T

*/

/***

* 将List对象序列化为JSON文本

*/

public static T String toJSONString(ListT list)

{

JSONArray jsonArray = JSONArray.fromObject(list);

return jsonArray.toString();

}

/***

* 将对象序列化为JSON文本

* @param object

* @return

*/

public static String toJSONString(Object object)

{

JSONArray jsonArray = JSONArray.fromObject(object);

return jsonArray.toString();

}

/***

* 将JSON对象数组序列化为JSON文本

* @param jsonArray

* @return

*/

public static String toJSONString(JSONArray jsonArray)

{

return jsonArray.toString();

}

/***

* 将JSON对象序列化为JSON文本

* @param jsonObject

* @return

*/

public static String toJSONString(JSONObject jsonObject)

{

return jsonObject.toString();

/***

* 将对象转换为List对象

* @param object

* @return

*/

public static List toArrayList(Object object)

{

List arrayList = new ArrayList();

JSONArray jsonArray = JSONArray.fromObject(object);

Iterator it = jsonArray.iterator();

while (it.hasNext())

{

JSONObject jsonObject = (JSONObject) it.next();

Iterator keys = jsonObject.keys();

while (keys.hasNext())

{

Object key = keys.next();

Object value = jsonObject.get(key);

arrayList.add(value);

}

}

return arrayList;

}

/***

* 将对象转换为Collection对象

* @param object

* @return

*/

public static Collection toCollection(Object object)

{

JSONArray jsonArray = JSONArray.fromObject(object);

return JSONArray.toCollection(jsonArray);

}

/***

* 将对象转换为JSON对象数组

* @param object

* @return

*/

public static JSONArray toJSONArray(Object object)

{

return JSONArray.fromObject(object);

}

/***

* 将对象转换为JSON对象

* @param object

* @return

*/

public static JSONObject toJSONObject(Object object)

{

return JSONObject.fromObject(object);

}

/***

* 将对象转换为HashMap

* @param object

* @return

*/

public static HashMap toHashMap(Object object)

{

HashMapString, Object data = new HashMapString, Object();

JSONObject jsonObject = JSONUtils.toJSONObject(object);

Iterator it = jsonObject.keys();

while (it.hasNext())

{

String key = String.valueOf(it.next());

Object value = jsonObject.get(key);

data.put(key, value);

}

return data;

}

/***

* 将对象转换为ListMapString,Object

* @param object

* @return

*/

// 返回非实体类型(MapString,Object)的List

public static ListMapString, Object toList(Object object)

{

ListMapString, Object list = new ArrayListMapString, Object();

JSONArray jsonArray = JSONArray.fromObject(object);

for (Object obj : jsonArray)

{

JSONObject jsonObject = (JSONObject) obj;

MapString, Object map = new HashMapString, Object();

Iterator it = jsonObject.keys();

while (it.hasNext())

{

String key = (String) it.next();

Object value = jsonObject.get(key);

map.put((String) key, value);

}

list.add(map);

}

return list;

}

/***

* 将JSON对象数组转换为传入类型的List

* @param T

* @param jsonArray

* @param objectClass

* @return

*/

public static T ListT toList(JSONArray jsonArray, ClassT objectClass)

{

return JSONArray.toList(jsonArray, objectClass);

}

/***

* 将对象转换为传入类型的List

* @param T

* @param jsonArray

* @param objectClass

* @return

*/

public static T ListT toList(Object object, ClassT objectClass)

{

JSONArray jsonArray = JSONArray.fromObject(object);

return JSONArray.toList(jsonArray, objectClass);

}

/***

* 将JSON对象转换为传入类型的对象

* @param T

* @param jsonObject

* @param beanClass

* @return

*/

public static T T toBean(JSONObject jsonObject, ClassT beanClass)

{

return (T) JSONObject.toBean(jsonObject, beanClass);

}

/***

* 将将对象转换为传入类型的对象

* @param T

* @param object

* @param beanClass

* @return

*/

public static T T toBean(Object object, ClassT beanClass)

{

JSONObject jsonObject = JSONObject.fromObject(object);

return (T) JSONObject.toBean(jsonObject, beanClass);

}

/***

* 将JSON文本反序列化为主从关系的实体

* @param T 泛型T 代表主实体类型

* @param D 泛型D 代表从实体类型

* @param jsonString JSON文本

* @param mainClass 主实体类型

* @param detailName 从实体类在主实体类中的属性名称

* @param detailClass 从实体类型

* @return

*/

public static T, D T toBean(String jsonString, ClassT mainClass,

String detailName, ClassD detailClass)

{

JSONObject jsonObject = JSONObject.fromObject(jsonString);

JSONArray jsonArray = (JSONArray) jsonObject.get(detailName);

T mainEntity = JSONUtils.toBean(jsonObject, mainClass);

ListD detailList = JSONUtils.toList(jsonArray, detailClass);

try

{

BeanUtils.setProperty(mainEntity, detailName, detailList);

}

catch (Exception ex)

{

throw new RuntimeException("主从关系JSON反序列化实体失败!");

}

return mainEntity;

}

/***

* 将JSON文本反序列化为主从关系的实体

* @param T泛型T 代表主实体类型

* @param D1泛型D1 代表从实体类型

* @param D2泛型D2 代表从实体类型

* @param jsonString JSON文本

* @param mainClass 主实体类型

* @param detailName1 从实体类在主实体类中的属性

* @param detailClass1 从实体类型

* @param detailName2 从实体类在主实体类中的属性

* @param detailClass2 从实体类型

* @return

*/

public static T, D1, D2 T toBean(String jsonString, ClassT mainClass,

String detailName1, ClassD1 detailClass1, String detailName2,

ClassD2 detailClass2)

{

JSONObject jsonObject = JSONObject.fromObject(jsonString);

JSONArray jsonArray1 = (JSONArray) jsonObject.get(detailName1);

JSONArray jsonArray2 = (JSONArray) jsonObject.get(detailName2);

T mainEntity = JSONUtils.toBean(jsonObject, mainClass);

ListD1 detailList1 = JSONUtils.toList(jsonArray1, detailClass1);

ListD2 detailList2 = JSONUtils.toList(jsonArray2, detailClass2);

try

{

BeanUtils.setProperty(mainEntity, detailName1, detailList1);

BeanUtils.setProperty(mainEntity, detailName2, detailList2);

}

catch (Exception ex)

{

throw new RuntimeException("主从关系JSON反序列化实体失败!");

}

return mainEntity;

}

/***

* 将JSON文本反序列化为主从关系的实体

* @param T泛型T 代表主实体类型

* @param D1泛型D1 代表从实体类型

* @param D2泛型D2 代表从实体类型

* @param jsonString JSON文本

* @param mainClass 主实体类型

* @param detailName1 从实体类在主实体类中的属性

* @param detailClass1 从实体类型

* @param detailName2 从实体类在主实体类中的属性

* @param detailClass2 从实体类型

* @param detailName3 从实体类在主实体类中的属性

* @param detailClass3 从实体类型

* @return

*/

public static T, D1, D2, D3 T toBean(String jsonString,

ClassT mainClass, String detailName1, ClassD1 detailClass1,

String detailName2, ClassD2 detailClass2, String detailName3,

ClassD3 detailClass3)

{

JSONObject jsonObject = JSONObject.fromObject(jsonString);

JSONArray jsonArray1 = (JSONArray) jsonObject.get(detailName1);

JSONArray jsonArray2 = (JSONArray) jsonObject.get(detailName2);

JSONArray jsonArray3 = (JSONArray) jsonObject.get(detailName3);

T mainEntity = JSONUtils.toBean(jsonObject, mainClass);

ListD1 detailList1 = JSONUtils.toList(jsonArray1, detailClass1);

ListD2 detailList2 = JSONUtils.toList(jsonArray2, detailClass2);

ListD3 detailList3 = JSONUtils.toList(jsonArray3, detailClass3);

try

{

BeanUtils.setProperty(mainEntity, detailName1, detailList1);

BeanUtils.setProperty(mainEntity, detailName2, detailList2);

BeanUtils.setProperty(mainEntity, detailName3, detailList3);

}

catch (Exception ex)

{

throw new RuntimeException("主从关系JSON反序列化实体失败!");

}

return mainEntity;

}

/***

* 将JSON文本反序列化为主从关系的实体

* @param T 主实体类型

* @param jsonString JSON文本

* @param mainClass 主实体类型

* @param detailClass 存放了多个从实体在主实体中属性名称和类型

* @return

*/

public static T T toBean(String jsonString, ClassT mainClass,

HashMapString, Class detailClass)

{

JSONObject jsonObject = JSONObject.fromObject(jsonString);

T mainEntity = JSONUtils.toBean(jsonObject, mainClass);

for (Object key : detailClass.keySet())

{

try

{

Class value = (Class) detailClass.get(key);

BeanUtils.setProperty(mainEntity, key.toString(), value);

}

catch (Exception ex)

{

throw new RuntimeException("主从关系JSON反序列化实体失败!");

}

}

return mainEntity;

}

/**

* 封装json数据从后台传输

* @param obj

*/

public static void outPutJson(Object obj){

ActionContext context = ActionContext.getContext();

HttpServletResponse response = (HttpServletResponse) context.get(ServletActionContext.HTTP_RESPONSE);

try {

response.getWriter().print(obj);

} catch (IOException e) {

e.printStackTrace();

}

}

}

//测试类

String s1 = "[{id:1, pId:0, name:\"test1\" , open:true}]"; 

String s2 = "{id:2, pId:1, name:\"test211\" , open:true}"; 

String s3 = "{id:3, pId:2, name:\"test311\" , open:true}"; 

String s4 = "{id:4, pId:1, name:\"test411\" , open:true}";

ListString listZtree = new ArrayListString();

listZtree.add(s1);

listZtree.add(s2);

listZtree.add(s3);

listZtree.add(s4);

System.out.println(JSONUtils.toJSONString(listZtree));

}

用JAVA语言如何接收客户端发送的数据包

不写代码,这个要你自己完成的

JAVA提供了关于网络编程相应的API

客户端---Socket

服务端--ServerSocket

1.首先new出服务端对象

new ServerSocket(int port); port为指定接收的端口号

注意,你在new客户端对象的时候

new Socket(主机名,端口号) 这里的端口号要一致

2.new出服务端对象后,调用accpt()方法,接收客户端传递的数据,返回一个客户端对象, 这个客户端对象里有什么? 当然是你客户端发送的数据了

3.如何读取?

客户端的操作:

客户端写出数据至服务端 socket.getOutputStream()

客户端读取来自服务端的数据 socket.getInputStream()

服务端的操作;

利用 调用的accpet方法返回的Socket对象

ServerSocket server = new ServerSocket(8080); (假设是8080端口)

Socket socket = server.accpet();

服务端读取来自客户端的数据: socket.getInputStream();

服务端向客户端发送数据: socket.getOutputStream()

一个基本的网络通信模式就这样生成了

字节如何以网页形式显示? 全是乱码?

你客服端发送一个.mp3 能显示出来吗?

如果你想以网页显示的话,那涉及到JavaWeb编程了,servlet/jsp

QQ:170014410 可以探讨

java数值包的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java语言中的数据是如何定义的、java数值包的信息别忘了在本站进行查找喔。