Java基础之网络编程

王朝学院·作者佚名  2016-05-29
窄屏简体版  字體: 小  |  中  |  大  |  超大  

java基础之网络编程ip地址IP地址是由32位或者128位无符号数表示的网络层通信地址,是一种低级协议,TCP和UDP协议都是在它的基础上构建的。Java中使用InetAddress来表示IP地址,它有两个子类Inet4Address和Inet6Address,分别表示IPV4和IPV6。

getByName()方法通过主机名获取到InetAddress对象,若有多个主机,则使用getAllByName()返回InetAddress对象数组。

Socket套接字Socket是提供网络服务的一种机制,通信的两端都有socket,两端通过socket进行通信。InetSocketAddress封装了IP+端口号。

TCP/UDP协议的特点UDP协议UDP协议将数据封装成数据报,大小在64KB以内,无须建立连接,速度快,不可靠。Java使用DatagramSocket类描述用来发送和接收数据包的socket,而使用DatagramPacket来描述UDP协议的数据包,用于描述无连接包投递服务。

数据发送

建立UDPsocket服务,指定发送端口: DatagramSocket ds=new DatagramSocket(localport); 将字节数据封装在数据包中:DatagramPacket dp=new DatagramPacket(buf,buf.length,ia,receiveport) 通过socket发送功能发送: ds.send(dp) 关闭资源:ds.close() 数据接收

建立UDPsocket服务,指定监听端口:DatagramSocket ds=new DatagramSocket(receiveport); 定义数据包用来接收数据:DatagramPacket dp=new DatagramPacket(buf,buf.length) 通过socket接收功能接收数据并提取:ds.receive(dp);dp.getData(); 关闭资源:ds.close() TCP协议TCP协议需要建立连接,在连接中传输大量数据(不需封装成数据报),通过三次握手完成连接,是可靠协议,但效率低。Java使用Socket来描述客户端的socket服务,使用SocketSever来描述服务器端的socket服务。

客户端

创建客户端并指定要连接的服务器的IP和端口:Socket cs=new Socket(InetAdress,serverport) 通过socket对象中的输入流和输出流分别发送和接收数据: 获取到输出流OutputStream os=cs.getOutputStream(); 将数据写入到输出流中:os.write(byte[]); 获取到输入流:InputStream is=cs.getInputstream() 服务器端

创建服务端的ServerSocket服务,并监听一个端口:SeverSocket ss=new ServerSocket(serverport) 获取连接过来的客户端对象:Socket s=ss.accept();该方法是阻塞式方法。 使用客户端对象的读取流来读取发送过来的数据: 获取到输入流InputStream is=s.getInputstream() 将数据读取到字节数组中Is.read(buf) 获取到输出流:OutputStream os=s.getOutputStream(); 通信完毕关闭客户端s.close() ServerSocket对象初始化时,可以通过设置backlog参数来指定能最大连接到服务器的客户端个数

URL类URL是统一资源定位符,该类可以根据指定形式构建URL对象。

getHost()获取主机名 getFile()获取文件名 getPath()获取路径部分 getPort()获取端口号,当URL中没有指定时返回-1; getPRotocal()获取协议名 getQuery()获取请求部分 openConnection()返回一个URL的连接对象 openStream()打开一个URL连接并返回一个用于从该连接读入的InputStream

URLConnection类该类是抽象类,有两个子类HttpURLConnection和JarURLConnection来实现。该类封装了传输层的socket对象,可以直接读取socket流对象

getInputStream()返回socket的读取流对象,用于数据的读取从该连接返回的数据。 getContent()获取到URL连接的内容

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航