>  기사  >  Java  >  Java의 네트워크 프로그래밍

Java의 네트워크 프로그래밍

WBOY
WBOY원래의
2023-06-08 16:59:061245검색

인터넷의 급속한 발전으로 인해 네트워크 프로그래밍이 점점 더 중요해졌습니다. 널리 사용되는 프로그래밍 언어로서 Java는 당연히 강력한 네트워크 프로그래밍 기능을 갖추고 있습니다. 이 기사에서는 Java의 네트워크 프로그래밍에 대해 간략하게 소개합니다.

  1. 기본

Java에서 네트워크 프로그래밍에는 두 가지 중요한 클래스인 Socket과 ServerSocket을 사용해야 합니다. Socket 클래스는 클라이언트측 연결을 설정하는 데 사용되는 반면 ServerSocket은 서버측 연결을 생성하는 데 사용됩니다. 소켓 객체는 IP 주소와 포트 번호를 지정하여 생성되고, ServerSocket은 로컬 포트 ​​번호를 지정하여 생성됩니다.

  1. 네트워크 전송 프로토콜

네트워크 프로그래밍을 할 때는 TCP/IP, UDP, HTTP와 같은 몇 가지 기본 네트워크 전송 프로토콜을 이해해야 합니다. TCP/IP와 UDP는 가장 일반적으로 사용되는 두 가지 프로토콜입니다. TCP/IP는 안정적인 데이터 전송을 제공하는 연결 지향 프로토콜인 반면, UDP는 더 빠른 데이터 전송을 제공하는 비연결 프로토콜입니다. HTTP 프로토콜은 웹 서버와 브라우저 간의 통신에 널리 사용되는 오프라인 요청 및 응답 프로토콜입니다.

  1. TCP/IP 프로토콜을 기반으로 네트워크 프로그램 작성

다음은 간단한 클라이언트/서버 프로그램의 예입니다.

Client:

import java.net.*;
import java.io.*;
public class Client {
   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();
      }
   }
}

Server:

import java.net.*;
import java.io.*;
public class Server extends Thread {
   private ServerSocket serverSocket;
   
   public Server(int port) throws IOException {
      serverSocket = new ServerSocket(port);
      serverSocket.setSoTimeout(10000);
   }

   public void run() {
      while(true) {
         try {
            System.out.println("等待客户端连接,端口号为:" + serverSocket.getLocalPort() + "...");
            Socket server = serverSocket.accept();
            System.out.println("远程主机地址:" + server.getRemoteSocketAddress());
            DataInputStream in = new DataInputStream(server.getInputStream());
            System.out.println(in.readUTF());
            DataOutputStream out = new DataOutputStream(server.getOutputStream());
            out.writeUTF("感谢连接我:" + server.getLocalSocketAddress() + "
Goodbye!");
            server.close();
         } catch (SocketTimeoutException s) {
            System.out.println("Socket timed out!");
            break;
         } catch (IOException e) {
            e.printStackTrace();
            break;
         }
      }
   }
   
   public static void main(String [] args) {
      int port = Integer.parseInt(args[0]);
      try {
         Thread t = new Server(port);
         t.start();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

이 프로그램은 클라이언트와 서버 간의 간단한 통신을 보여줍니다. 클라이언트가 실행되면 서버에 문자열을 보내고 서버는 해당 문자열로 응답합니다.

  1. 요약

Java의 네트워크 프로그래밍은 TCP/IP 및 UDP와 같은 프로토콜을 사용하여 수행할 수 있습니다. 네트워크 프로그램을 작성할 때 Socket 클래스와 ServerSocket 클래스를 사용해야 합니다.

위 내용은 Java 네트워크 프로그래밍의 입문 부분에 불과합니다. 데이터 패킷 전송 및 수신, 멀티 스레드 네트워크 프로그래밍, 웹 서버 액세스 등 네트워크 프로그래밍에 대해 깊이 이해해야 할 사항이 많습니다. HTTP를 통해.

위 내용은 Java의 네트워크 프로그래밍의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.