网站首页 > java教程 正文
一、ip地址
在网络中每台计算机都必须有一个的IP地址;
32位,4个字节,常用点分十进制的格式表示,例如:192.168.1.100
127.0.0.1 是固定ip地址,代表当前计算机,相当于面向对象里的 "this"
二、端口
两台计算机进行连接,总有一台服务器,一台客户端。
服务器和客户端之间的通信通过端口进行。如图:
ip地址是 192.168.1.100的服务器通过端口 8080
与ip地址是192.168.1.189的客户端 的1087端口通信
三、获取本机ip地址
import java.net.InetAddress;
public class NetTest {
public static void main(String[] args) {
try {
//获取InetAddress对象
InetAddress ir = InetAddress.getLocalHost();
//获取本机ip地址
String addr = ir.getHostAddress();
//获取本机的名称
String name = ir.getHostName();
String addr1 = ir.toString();
System.out.println(addr);
System.out.println(name);
System.out.println(addr1);
} catch (Exception e) {
e.printStackTrace();
}
}
}
测试结果:
四、ping命令
使用ping判断一个地址是否能够到达
ping不是java的api,是windows中的一个小工具,用于判断一个地址的相应时间
如图
ping 192.168.229.1可以返回这个地址的响应时间 time<1ms表示很快,局域网一般就是这个响应时间
ping 192.168.229.2 返回“请求超时”表示时间较久都没有响应返回,基本判断这个地址不可用
五、使用java 执行ping命令
借助 Runtime.getRuntime().exec() 可以运行一个windows的exe程序
如图,使用java运行 ping 192.168.229.1,返回这样的字符串
代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestSocket {
public static void main(String[] args) throws IOException {
Process p = Runtime.getRuntime().exec("ping " + "192.168.229.1");
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream(), "gbk"));
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
if (line.length() != 0)
sb.append(line + "\r\n");
}
System.out.println("本次指令返回的消息是:");
System.out.println(sb.toString());
}
}
注意:由于从dos窗口执行ping命令获取的字节流默认是gbk的编码,而eclipse的默认编码方式是utf-8,因此我获取流时解码的方式必须指定为gbk,否则eclipse控制台输出的结果会是乱码!
猜你喜欢
- 2024-09-10 Netty面试秘籍-1.什么是 Netty,它在网络编程中解决了什么问题?
- 2024-09-10 清华毕业大佬终于把Java网络编程面试题整理完了
- 2024-09-10 Java网络编程重点(java实现网络编程)
- 2024-09-10 Java学习:Java网络编程之TCP协议(java tcp ip socket编程)
- 2024-09-10 最全Java架构师技能树:Java编程+网络+设计模式+数据库+分布式
- 2024-09-10 Java网络编程之TCP服务器底层原理与实现
- 2024-09-10 Java面试八股文Netty网络编程,select
- 2024-09-10 Java 网络IO编程总结(网络编程java常用方法)
- 2024-09-10 想学习Java网络编程,从何入手?(java中的网络编程)
- 2024-09-10 不“精通”Java网络和并发编程也能学好Netty,这份Neety手册绝了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)