Java网络学习和笔记——黑马训练营
2015-10-22 18:25
471 查看
-------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.使用InetAdress
Java提供了InetAdress工具类来操作IP地址。
获取InetAdress实例对应的IP地址和主机名:
1.String getCanonicalHostName;获取此IP地址的全限定域名。
2.String getHostAddress():返回该InetAdress实例对应的IP地址字符串。
3.String getHostName():获取此IP地址的主机名。
4.boolean isReachable():用于测试是否可到达该地址。
2.UDP网络编程的操作
UDP网络传输特点:
1.将数据及源和目的封装成数据包中,不需要建立连接
2.每个数据包的大小限制在64K内
3.因无连接,是不可靠协议
4.不需要建立连接,速度快
服务端代码:
客户端代码:
3.TCP网络编程操作
TCP传输的特点:
1.建立连接,形成传输数据的通道
2.在连接中进行大数据量传输
3.通过三次握手完成连接,是可靠协议
4.必须建立连接,效率会稍低
TCP服务端
TCP客户端
1.使用InetAdress
Java提供了InetAdress工具类来操作IP地址。
获取InetAdress实例对应的IP地址和主机名:
1.String getCanonicalHostName;获取此IP地址的全限定域名。
2.String getHostAddress():返回该InetAdress实例对应的IP地址字符串。
3.String getHostName():获取此IP地址的主机名。
4.boolean isReachable():用于测试是否可到达该地址。
public static void main(String[] args) throws Exception{ //根据主机名称来获取向对应的InetAddress InetAddress ip=InetAddress.getByName("www.itheima.com"); System.out.println(ip); //打印结果www.itheima.com/42.121.41.246 boolean reachable=ip.isReachable(10000); //获取本机IP地址 System.out.println("本机IP:"+ InetAddress.getLocalHost()); }
2.UDP网络编程的操作
UDP网络传输特点:
1.将数据及源和目的封装成数据包中,不需要建立连接
2.每个数据包的大小限制在64K内
3.因无连接,是不可靠协议
4.不需要建立连接,速度快
服务端代码:
public static void main(String[] args) throws Exception{ //建立Socket发送端 DatagramSocket ds = new DatagramSocket(); //发送数据 String s = "udpSend发送的消息"; byte[] byt = s.getBytes(); //获取数组长度 int length = byt.length; //获取计算机名(测试使用本机IP) InetAddress Ip = InetAddress.getLocalHost(); int port = 6666; DatagramPacket dp = new DatagramPacket(byt, length,Ip,port); //调用Socket的发送方法,发送数据包 ds.send(dp); //关闭socaket ds.close(); }
客户端代码:
public static void main(String[] args) throws IOException { // 建立客户端socket对象 // 客户端端口必须和服务器端口一致 DatagramSocket ds = new DatagramSocket(6666); byte[] byt = new byte[1024]; DatagramPacket dp = new DatagramPacket(byt, byt.length); // 调用Socket的接收 ds.receive(dp); // 获取地址对象 InetAddress id = dp.getAddress(); // 获取地址ip String locahost = id.getHostAddress(); // 获取值 byte[] data = dp.getData(); // 获取长度 int length = dp.getLength(); String rce = new String(data, 0, length); System.out.println("从" + locahost + "接收到的数据是:" + rce); // 关闭socaket ds.close(); }打印结果从10.198.1.13接收到的数据是:udpSend发送的消息
3.TCP网络编程操作
TCP传输的特点:
1.建立连接,形成传输数据的通道
2.在连接中进行大数据量传输
3.通过三次握手完成连接,是可靠协议
4.必须建立连接,效率会稍低
TCP服务端
public static void main(String[] args) throws IOException{ //创建socket对象 Socket socket=new Socket(InetAddress.getLocalHost(), 8000); //socket与字节流相关联 OutputStream ops=socket.getOutputStream(); String str="tcpSend我是数据"; //将字符串装换成数组 byte[] byt=str.getBytes(); //输出数据 ops.write(byt); //关闭socket socket.close(); //关闭流 ops.close(); }
TCP客户端
ServerSocket server=new ServerSocket(8000); Socket socket=server.accept(); InputStream ips=socket.getInputStream(); int len=0; byte[]byt=new byte[1024]; while((len=ips.read())!=-1){ System.out.println(new String(byt,0,len)); } //关闭socket socket.close(); //关闭流 ips.close();
相关文章推荐
- UNP总结 Chapter 4 基本TCP套接字编程
- 网络通信 --> epoll用法
- android:判断手机网络类型
- (高级篇 Netty多协议开发和应用)第十章-Http协议开发应用(基于Netty的HttpServer和HttpClient的简单实现)
- http://www.cnblogs.com/xuxuanxubao/
- 无线网络没信号
- VMware NAT端口映射 外网可以访问内网虚拟机
- TCP三次握手过程
- HttpURLConnection以及GBK转UTF-8中文部分乱码问题
- 提供一个Matlab的BP神经网络的基础资料
- c#使用HttpWebRequest,HttpWebResponse快速验证代理IP是否有用
- HttpClient的基本使用
- Can not find the tag library descriptor for "http://java.sun.com/jsp/ jstl/core"
- linux 网络监测工具---iftop
- 从ova文件导入虚拟机后虚拟机无法连接网络
- win10无线网络不稳定的原因分析及解决办法
- IOS HTTP,TCP/IP
- OSI与TCP/IP网络模型
- 基于HTTP在互联网传输敏感数据的消息摘要、签名与加密方案
- 神经网络和遗传算法结合(原创)