A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一.网络编程三要素:
1.IP:
  二进制:四段8位的二进制表示;
  十进制:四段3位的0--255的数字;
2.端口:
  1).物理端口:网卡口
  2).逻辑端口:由操作系统维护,Windows下0--65535
       0-1024由系统内部使用,我们尽量不要使用;
  我们讲的端口:逻辑端口:

3.协议:
  1).UDP协议:
   A.将数据源和目的封装成数据包中,
   B.不需要建立连接;
   C.每个数据报的大小在限制在64k;
   D.因无连接,是不可靠协议;但速度快
  2).TCP协议:
   A.需要建立连接;
   B.在连接中进行大数据量传输;
   C.通过三次握手完成连接,是可靠协议;
   D.必须建立连接,效率会稍低
二.UDP协议编程:
1.发送端:
  1.实例化DatagramSocket();
   DatagramSocket socket = new DatagramSocket();
  2.准备数据:
   IP: InetAddress add = InetAddress("Lenovo-PC");
   端口: int port = 8888;
   数据: byte[] byteArray = "你好".getBytes();
  3.准备数据报:
   DatagramPacket packet = new DatagramPacket(byteArray,
         byteArray.length,
         add,port);
  4.发送:
   socket.send(packet);
  5.释放资源:
   socket.close();
2.接收端:
  //1.实例化DatagramSocket
  DatagramSocket socket = new DatagramSocket(8888);
  //2.准备一个空的byte[]数组
  byte[] byteArray = new byte[1024];
  //3.准备一个空的DatagramPacket
  DatagramPacket packet = new DatagramPacket(byteArray,byteArray.length);
  //4.等待信息
  socket.receive(packet);
  //5.获取信息
  byte[] infoArray = packet.getData();
  String info = new String(infoArray,0,packet.getLength());
  System.out.println("获取的信息:" + info);
  //6.释放资源
  socket.close();

   
三.TCP协议编程:
1.发送端:
  //1.实例化一个Socket
  Socket socket = new Socket("192.168.38.91",8888);
  //2.获取输出流
  OutputStream out = socket.getOutputStream();
  //3.输出,一次输出一个字节数组
  out.write("你好".getBytes());
  //4.释放资源
  out.close();
  socket.close();
2.接收端:
  //1.实例化一个ServerSocket
  ServerSocket server = new ServerSocket(8888);
  //2.获取输入流
  InputStream in = socket.getInputStream();
  //3.一次读取一个字节数组
  byte[] byteArray = new byte[1024];
  int len = in.read(byteArray);
  String s = new String(byteArray,0,len);
  System.out.println("接收到的数据:" + s);
  //4.释放资源
  in.close();
  sever.close();

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马