1.软件架构
2.网络编程三要素
3.ip
1.ipv4
2.ipv6
        //获取inetaddress的对象
        inetaddress address = inetaddress.getbyname("127.0.0.1");
 
4.端口号
5.协议

1.udp协议
udp协议发送数据:
public class send{
    public static void main(string[] args) throws ioexception {
        //创建datagramsocket对象
        datagramsocket ds = new datagramsocket();
        //打包数据
        string str = "你好!!";
        byte[] bytes = str.getbytes();
        inetaddress address = inetaddress.getbyname("127.0.0.1");
        int port = 10006;
        datagrampacket dp = new datagrampacket(bytes, bytes.length, address, port);
        //发送数据
        ds.send(dp);
        //释放资源
        ds.close();
    }
}
 
udp协议接收数据:
public class receive{
    public static void main(string[] args) throws ioexception {
        //创建datagramsocket对象:接收时绑定的端口号要与发送时的端口保持一致
        datagramsocket ds = new datagramsocket(10086);
        //接收数据包
        byte[] bytes = new byte[1024];
        datagrampacket dp = new datagrampacket(bytes, bytes.length);
        ds.receive(dp);
        //解析数据包
        byte[] data = dp.getdata();
        int length = dp.getlength();
        inetaddress address = dp.getaddress();
        int port = dp.getport();
        system.out.println("接收到数据:" + new string(data, 0, length));
        system.out.println("该数据是从" + address + "这台电脑中的" + port + "这个端口号发出的");
        //释放资源
        ds.close();
    }
}
 
 
1.单播
2.组播
3.广播
2.tcp协议
客户端发送数据:
public class client {
    public static void main(string[] args) throws ioexception {
        //发送数据
        //创建socket对象
        socket socket = new socket("127.0.0.1", 10001);
        //从连接通道中获取输出流
        outputstream os = socket.getoutputstream();
        //写出数据
        os.write("你好".getbytes());
        //释放资源
        os.close();
        socket.close();
    }
}
 
服务器接收数据:
public class server {
    public static void main(string[] args) throws ioexception {
        //接收数据
        //
        serversocket ss = new serversocket(10001);
        //监听用户的连接
        socket socket = ss.accept();
        //从连接通道中获取输入流数据
        inputstream is = socket.getinputstream();
        //解决中文乱码
        inputstreamreader isr = new inputstreamreader(is);
        //使用缓冲流提高读取效率
        bufferedreader br = new bufferedreader(isr);
        int b;
        while ((b = br.read()) != -1) {
            system.out.println((char) b);
        }
        //释放资源
        socket.close();
        ss.close();
    }
}
 
            
                                            
                                            
                                            
发表评论