InetAddress 类
相关方法:
getLocalHost:获取本机InetAddress对象。
getByName:根据指定主机名/域名获取ip地址对象。
getHostName:获取InetAddress对象的主机名。
getHostAddress:获取InetAddress对象的地址。
简单使用:
InetAddress inter = InetAddress.getByName("IP/域名");
Socket
套接字(Socket)开发网络应用程序被广泛采用,以至于成为事实上的标准。
通信的两端都要有Socket,是两台机器间通信的端点和接口。
网络通信其实就是Socket间的通信。
Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输。
一般主动发起通信的应用程序属客户端,等待通信请求的为服务端。
相关方法:getOutputStream()和getInputStream。
可以实现TCP和UDP网络编程。
TCP网络编程实现
客户端:
//创建Socket对象,指明服务器端的IP和端口号
InetAddress inet = InetAddress.getLocalHost();
Socket socket = new Socket(inet, 服务端端口号);
/狭取一个输出流,用于输出数据
OutputStream os = socket.getOutputStream();
//写出数据居
os.write("你好".getBytes());
//设置结束标记,告诉服务端已经操作完毕
socket.shutdownOutput();
//获取一个输入流,获取服务端的回复
InputStream is = socket.getInputStream();
byte [] bf =new byte [1024];
int len=0;
while ((len=is. read(bf))!=-1){
System.out.println(new String(bf,0,len));
}
//资源的关闭
os.close();
is.close();
socket.close();
服务器端:
//创建 服务器端的ServerSocket,指明自己的端口号
ServerSocket ss= new ServerSocket(9999);
//调用accept()表示接收来自于客户端的socket
Socket socket = ss.accept();
//获取输入流,用于接收数据
InputStream is = socket.getInputStream();
//读取客户端的数据,并输出
byte [] bf =new byte [1024];
int len=0;
while ((len=is. read(bf))!=-1){
System.out.println(new String(bf,0,len));
}
//获取一个输出流,给客户端进行回复
OutputStream os = socket.getOutputStream();
//写出数据居
os. write ("处理完毕".getBytes());
/设置结束标记,告诉客户端已经操作完毕
socket.shutdownInput();
//资源的关闭
is.close();
os.close();
socket.close();
ss.close();
除shutdownInput()外在字符流中也可以用newLine()方法进行结束符的设置。
writer.flush():可以把信息刷新到管道中。