>  기사  >  Java  >  Java의 소켓 프로그래밍

Java의 소켓 프로그래밍

WBOY
WBOY원래의
2024-08-30 16:27:37976검색

월드와이드웹과 인터넷은 우리가 생활하고 서로 소통하는 방식과 과학, 공학, 상업을 수행하는 방식을 변화시켰습니다. 현대 생활은 완전히 인터넷을 중심으로 움직이고 있습니다. 기업은 혁신을 도입하는 새로운 방식으로 다양한 서비스를 생산하고 소통하는 새로운 방법을 지속적으로 모색합니다. 이 기사에서는 Java의 소켓 프로그래밍에 대해 설명합니다.

소켓은 OSI 모델 전송 계층의 네트워크 프로그래밍을 위한 인터페이스를 제공합니다. 소켓을 사용한 네트워크 통신은 인터넷 곳곳에서 발견됩니다. 그 외에도 Java로 작성된 소켓 프로그램은 C, C++, Python 등과 같은 Java가 아닌 언어로 작성된 소켓 프로그램과 통신할 수 있습니다.

광고 이 카테고리에서 인기 있는 강좌 프로그래밍 언어 - 전문 분야 | 54 코스 시리즈 | 4가지 모의고사

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

소켓 클래스 메소드

소켓 클래스 메소드는 Java에서 찾을 수 있습니다. 소켓은 TCP가 데이터가 전송될 포트 번호를 인식할 수 있도록 포트 번호로 바인딩됩니다. Java는 일련의 클래스를 제공하며 그 중 하나가 java.net입니다. 이는 네트워크 애플리케이션의 빠른 개발에 사용됩니다. java.net 패키지에 있는 주요 클래스, 인터페이스 및 예외는 클라이언트 및 서버 프로그램 생성과 관련된 복잡성을 단순화합니다.

수업은 다음과 같습니다.

  • 컨텐츠 핸들러
  • 데이터그램 패킷
  • 데이터그램 소켓
  • 데이터그램 소켓 Imp 1
  • HTTP URL 연결
  • 아이넷주소
  • 멀티캐스트 소켓
  • 서버 소켓
  • 소켓
  • 소켓 임프 1
  • URL
  • URL연결
  • URL 인코더
  • URL 스트림 핸들러

인터페이스는 다음과 같습니다.

  • 컨텐츠 핸들러 팩토리
  • 파일명 맵
  • 소켓 구현 공장
  • URL 스트림 핸들러 팩토리

예외는 다음과 같습니다.

  • 바인드 예외
  • 연결 예외
  • 잘못된 URL 예외
  • 호스트 예외 경로 없음
  • 프로토콜 예외
  • 소켓 예외
  • 알 수 없는 호스트 예외
  • 알 수 없는 서비스 예외

TCP/IP 소켓 프로그래밍

프로그램 생성에 사용되는 java.net 패키지에는 두 가지 클래스가 있습니다.

  • 서버 소켓
  • 소켓

서버 프로그램은 입력 및 출력 스트림을 통해 통신합니다. 연결 요청이 있는 경우 새로운 소켓이 작동하게 되며 여기에 연결이 설정됩니다.

Java의 소켓 프로그래밍

방법 1 - 서버 소켓 프로그램 만들기

Java에서 서버 소켓 프로그램을 작성하는 데는 다양한 단계가 있습니다.

서버 소켓 프로그램을 만드는 간단한 단계는 다음과 같습니다.

1단계: 소켓 서버가 열립니다.

Server Socket General= new Server Socket(PO)

여기서 PO는 포트 번호입니다.

여기서 포트 번호는 입력/출력 스트림을 사용하여 통신할 서버 네트워크에 할당됩니다.

2단계: 인내심을 갖고 기다려야 하는 고객 요청이 있습니다.

Socket General= server. accept()

여기가 서버입니다. accept()는 클라이언트를 기다리며 여기서 소켓 이름은 Client입니다.

3단계: 연결이 설정되도록 I/O 스트림이 생성됩니다

데이터 입력 스트림

is = new Data Input Stream(client. Get Input Stream());

데이터 출력 스트림

os = new Data Output Stream(client. get Output Stream());

입력 스트림과 출력 스트림에는 Get Input Stream()이 할당되고 각각 호출됩니다.

4단계: 고객과의 연락이 생성됩니다.

클라이언트로부터 수신:

string hello = br. Read Line();

고객에게 보내기:

br. Write Bytes("How are you\n");

다음 코드는 클라이언트와 통신하여 요청을 받고 클라이언트로 보냅니다.

5단계: 마지막으로 소켓이 종료됩니다.

마지막으로 소켓 프로그래밍을 닫고 종료하기 위해 소켓 닫기 기능을 사용합니다.

서버 소켓의 간단한 예는 다음과 같습니다.

서버 연결을 위한 간단한 프로그램

코드:

import java.net.*;
import java.io.*;
public class SimpleMachine {
public static void main(String args[]) throws IOException {
// On port 1362 server port is registered
ServerSocket soc = new ServerSocket(1362);
Socket soc1=soc.accept(); // Link is accepted after waiting
// Linked with the socket there should be a connection
OutputStream s1out = soc1.getOutputStream();
DataOutputStream dosH = new DataOutputStream (s1out);
// A string command is sent
dosH.writeUTF("Hello how are you");
// The connection can be closed but the server socket cannot.
dosH.close();
s1out.close();
soc1.close();         }
}

방법 2 – 간단한 서버 소켓 프로그램 만들기

이제 Java로 작성된 간단한 클라이언트 프로그램을 살펴보겠습니다.

Java로 간단한 클라이언트 프로그램을 만드는 단계는 다음과 같습니다.

1단계: 소켓 객체가 생성됩니다.

Socket client= new Socket(server, port_id)

서버와 포트 ID가 연결되어 있습니다. 즉, 해당 포트 ID에 서버가 연결됩니다.

2단계: 입/출력 스트림이 생성됩니다.

is = new Data Input Stream(client.getInputStream());
os = new Data Output Stream(client.getOutputStream());

입력 스트림은 이고, 출력 스트림 os는 클라이언트와의 통신에 사용됩니다.

Step 3: Input/Output streams are made for talking to the Client.

Data is read from the server:

string hello = br. readLine();

Send data to the server:

br.writeBytes("How are you\n")

This step communicates with the server. The input stream and output stream both communicates with the server.

Step 4: Close the Socket when done.

This function will close the client when it is finally done.

An example of a simple server socket program is shown below.

A simple program for the client.

Code:

import java.net.*;
import java.io.*;
public class SimpleMachineClient {
public static void main(String args[]) throws IOException
{
// At port 1325, connection to the server is opened
Socket s1H = new Socket("host",1325);
// Read the input stream by getting an input file from the socket
Input Stream s1I = s1. getInputStream();
Data Input Stream disH = new Data Input Stream(s1In);
String str = new String (disH.readUTF());
System.out.println(str);
// After it is done, we can close the connection.
disH.close();
s1I.close();
s1H.close();
}
}

Conclusion

Socket programming is beneficial in Java and in any other programming language. A program written in Java can connect with a program written in C or C++. In other words, the language of the socket program doesn’t matter when there has to be a connection between the two. In this article, we have basically seen the Simple Server and the Simple Client example where there is a connection between the server socket and in the other, there is a connection between the server socket. We have used TCP/IP programming for the same. However, there are a lot of programming techniques like UDP programming techniques and URL programming techniques. We have not seen examples of such in this article. We have stressed on TCP/IP programming technique.

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

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