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()表示接收来自于客户端的socketSocket 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():可以把信息刷新到管道中。