黑马程序员 网络通讯

------- android培训java培训、期待与您交流! ---------------

1:网络编程(理解)
(1)网络编程:用java代码实现多台计算机的通信。
Socket编程,套接字编程。
(2)网络模型(了解,计算机网络)
(3)网络通信的三要素(掌握)
A:IP地址
唯一标识一台计算机


IP地址的概述


InetAddress类的使用。


static InetAddress getByName(String host)
B:端口
应用程序的逻辑标识。


范围:0-65535之间。0-1024被系统占用或者保留。
C:协议
通信的规则。


UDP:
面向无连接。
数据不可靠。
数据速度快。
大小有限制。


举例:
凌波发数据,群发短信
TCP:
面向连接。
数据可靠。
数据速度慢。
大小无限制。


举例:
打电话
(4)Socket对象:(理解)
应用程序的通信,其实就是在Socket对象间通过IO进行数据的交互。
(5)UDP协议(理解 参照UDP发送接收数据图)
发送数据
A:创建UDP协议发送数据的Socket对象。
B:创建数据并打包。
C:发送数据。
D:释放资源


代码体现:(自己体现)

<span style="font-size:18px;">/* 
 * UDP协议的发送数据: 
 * A:创建Socket对象 
 * B:创建一些数据,然后把数据打包 
 * C:发送数据 
 * D:释放资源 
 */  
public class SendDemo {  
    public static void main(String[] args) throws IOException {  
        // 创建Socket对象  
        DatagramSocket ds = new DatagramSocket();  
  
        // 创建一些数据,然后把数据打包  
        // public DatagramPacket(byte[] buf,int length,InetAddress address,int  
        // port)  
        byte[] bys = "hello,udp,我来了".getBytes();  
        InetAddress address = InetAddress.getByName("192.168.1.100");  
        DatagramPacket dp = new DatagramPacket(bys, bys.length, address, 10000);  
  
        // 发送数据  
        // public void send(DatagramPacket p)  
        ds.send(dp);  
  
        // 释放资源  
        ds.close();  
    }  
}  </span>
接收数据
A:创建UDP协议接收数据的Socket对象。
B:创建数据包用于接收数据。
C:接收数据,并解析数据。
D:释放资源。
代码体现:

<span style="font-size:18px;">/* 
 * UDP协议的接收数据: 
 * A:创建Socket对象,并指定端口号 
 * B:接收数据 - 数据包 
 * C:解析数据,并把数据显示出来 
 * D:释放资源 
 */  
public class ReceiveDemo {  
    public static void main(String[] args) throws IOException {  
        // 创建Socket对象  
        DatagramSocket ds = new DatagramSocket(10000);  
  
        // 创建数据包对象  
        // public DatagramPacket(byte[] buf,int length)  
        byte[] bys = new byte[1024];  
        DatagramPacket dp = new DatagramPacket(bys, bys.length);  
  
        // 接收数据 - 数据包  
        ds.receive(dp);  
  
        // 解析数据,并把数据显示出来  
        // public byte[] getData():返回的数据缓冲区  
        byte[] data = dp.getData();  
        //如何获取到实际读取长度  
        //public int getLength()  
        int len = dp.getLength();  
        String str = new String(data,0,len);  
        System.out.println("数据是:" + str);  
  
        // 释放资源  
        ds.close();  
    }  
}  </span>
(6)TCP协议(理解 参照TCP发送接收数据图)
客户端
A:创建客户端Socket对象。
B:获取输出流对象
C:使用输出流对象输出数据。
D:释放资源
代码体现:
<span style="font-size:18px;">Socket s = new Socket("192.168.1.100",10000);  
OutputStream os = s.getOutputStream();  
os.write("hello,tcp".getBytes());   
s.close();  </span>
服务器端
A:创建服务器Socket对象。
B:监听并获取客户端对象。
C:获取输入流。
D:根据输入流读取数据。
E:释放资源
<span style="font-size:18px;">ServerSocket ss = new ServerSocket(10000);  
  
Socket s = ss.accept();  
 
InputStream is = s.getInputStream();  
byte[] bys = new byte[1024];  
int len = is.read(bys);  
String client = new String(bys,0,len);  
System.out.println("client:"+client);  
  
s.close();  
ss.close();  </span>


----------------- ASP.Net+Unity开发.Net培训、期待与您交流! ---------------------- 详细请查看:www.itheima.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值