Java学习笔记7-网络编程

网络编程是指编写运行在多个设备(计算机)的程序,这些设备都经过网络链接起来。

网络编程是指编写运行在多个设备(计算机)的程序,这些设备都经过网络链接起来。java

java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通讯细节。你能够直接使用这些类和接口,来专一于解决问题,而不用关注通讯细节。编程

java.net 包中提供了两种常见的网络协议的支持:服务器

  • TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通讯。一般用于互联网协议,被称 TCP / IP
  • UDP:UDP 是用户数据报协议的缩写,一个无链接的协议。提供了应用程序之间要发送的数据的数据包。

下面主要学习两个知识点:。网络

Socket 编程:这是使用最普遍的网络概念,它已被解释地很是详细。并发

URL 处理:这部分会在另外的篇幅里讲,点击这里更详细地了解在 Java 语言中的 URL 处理。socket

Socket 编程

套接字使用TCP提供了两台计算机之间的通讯机制。 客户端程序建立一个套接字,并尝试链接服务器的套接字。学习

当链接创建时,服务器会建立一个 Socket 对象。客户端和服务器如今能够经过对 Socket 对象的写入和读取来进行通讯。.net

java.net.Socket 类表明一个套接字,而且 java.net.ServerSocket 类为服务器程序提供了一种来监听客户端,并与他们创建链接的机制。code

Socket 客户端实例
以下的 GreetingClient 是一个客户端程序,该程序经过 socket 链接到服务器并发送一个请求,而后等待一个响应。server

// 文件名 GreetingClient.java
 
import java.net.*;
import java.io.*;
 
public class GreetingClient
{
   public static void main(String [] args)
   {
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try
      {
         System.out.println("链接到主机:" + serverName + " ,端口号:" + port);
         Socket client = new Socket(serverName, port);
         System.out.println("远程主机地址:" + client.getRemoteSocketAddress());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);
 
         out.writeUTF("Hello from " + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in = new DataInputStream(inFromServer);
         System.out.println("服务器响应: " + in.readUTF());
         client.close();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}
相关文章
相关标签/搜索