网络编程
2020-09-04 10:22:25   0  举报             
     
         
 AI智能生成
  网络编程
    作者其他创作
 大纲/内容
  网络通信的三大要素    
     IP地址    
     连接网络的一个设备标识  
     IP可以直接访问服务器的,但是因为不方便进行记忆,需要使用主机名   
     本机回环地址  127.0.0.1 , 对应的主机名  localhost  
     JDK中对应的类: InetAddress  
     端口号    
     用来表示进程的逻辑地址  
     有效的端口范围 0 ~ 65535 ,其中 0 ~ 1024 被系统使用或保留的端口号  
     通信协议    
     TCP    
     面向连接的,保证数据传输的安全。有三次握手  
     UDP    
     面向无连接的,无法保证数据传输的安全。  
     TCP编程    
     客户端    
     1. 建立TCP客户端的socket服务 (指定服务端IP和服务端端口号)    
     Socket socket = new Socket("127.0.0.1",8888 );  
     说明 IP是服务端的IP,端口号是服务端进程的端口号  
     2.通过socket进行写操作    
     OutputStream os = socket.getOutputStream()    
     通过缓存流中的flush方法,实现清空缓存的操作  
     3. 通过socket进行读操作    
     InputStream is = socket.getInputStream();  
     4. 关闭socket对象    
     socket.close();  
     服务端    
     1.建立TCP服务端socket的服务(指定服务端端口号)    
     ServerSocket ss = new ServerSocket(8888);  
     2. 通过ss的accept方法来接受信息    
     Socket s = ss.accept();  
     3.通过s进行读操作    
     InputStream is = s.getInputStream();    
     如果传输的是文本,可以进行 转换流和字符缓存流的处理  
     如果传输的是字节文件,可以进行 字节缓存流的处理  
     4.通过s进行写操作    
     OutputStream os = s.getOutputStream();  
     5. 关闭socket      
     s.close();  
     说明: 一般情况下,服务端不会只运行一次。通常会将2,3,4,5的步骤放到无限循环中  
     UDP编程    
     发送端    
     1.建立UDP中的DatagramSocket服务    
     DatagramSocket ds = new DatagramSocket();  
     2.封装数据包DatagramPacket    
     DatagramPacket dp = new DatagramPacket(数据,数据大小,InetAddress对象,端口号);  
     说明: 1. 数据 是以 字节数组的形式存在 。 2.数据大小,表示字节数组的大小  
     3. 通过ds发送dp    
     ds.send(sp)  
     4.关闭DatagramSocket    
     ds.close();  
     接收端    
     1. 建立UDP中的DatagramSocket服务,必须设定端口号    
     DatagramSocket ds = new DatagramSocket(端口号);  
     2.建立一个空的数据包DatagreamPacket    
     byte[] arr = new byte[1024];
DatagramPacket dp = new DatagramPacket( arr , arr.length );  
     说明: arr 就是用来接收数据的数组  
     3. 通过ds接收dp    
     ds.receive(dp)  
     4.通过dp来获取接收的信息    
     dp.getData();   获取数据  
     dp.getLength(); 获取数据大小  
     dp.getAddress()  获取发送端的IP  
     dp.getPort()  获取发送端的端口号  
    
 
 
 
 
  0 条评论
 下一页
 为你推荐
 查看更多
    
   
   
   
   
   
  
  
  
  
  
  
  
  
  
  
 