Java를 사용하여 간단한 서버/클라이언트 에코 기능을 구현하는 방법 소개_기본 지식
소켓은 특정 프로그래밍 모델에서 프로세스 간 통신 링크의 끝점을 나타냅니다. 이 특정 프로그래밍 모델의 인기로 인해 Socket이라는 이름은 Java 기술을 포함한 다른 영역에서 재사용되었습니다.
연결이 설정되려면 한 컴퓨터는 연결을 기다리는 프로세스를 실행해야 하고, 다른 컴퓨터는 첫 번째 컴퓨터에 연결을 시도해야 합니다. 이 전화 시스템은 비슷합니다. 한 쪽은 통화를 시작해야 하고 다른 쪽은 전화 통화를 기다려야 합니다.
java 네트워크 모델 다이어그램
다음은 "echo" 기능이 있는 서버와 클라이언트를 사용하여 네트워크 애플리케이션을 작성하기 위한 java.net 패키지 애플리케이션을 소개합니다.
이 예제의 주요 기능은 서버측 프로그램이 클라이언트의 입력을 기다린 후 읽은 정보를 클라이언트에 에코하는 동시에 서버측 콘솔에 출력하는 것입니다. 클라이언트는 콘솔에서 정보를 받은 후 클라이언트에 입력을 보내고 서버에서 에코 데이터를 받은 다음 이를 콘솔에 표시합니다.
클라이언트 프로그램 코드는 다음과 같습니다.
package com.javapp.ch11;
import java.io.*;
import java.net.*;
/**
* 설명: "에코" 기능이 있는 서버측 및 클라이언트측 프로그램
*/
공개 클래스 EchoClientDemo {
// 서버측 서비스 포트입니다.
public static final int SERVERPORT = 990;
public static void main(String[] args) {
try {
// 연결 소켓을 설정합니다.
Socket s = new Socket("localhost",SERVERPORT);
System.out.println("socket = " s);
// 새 네트워크 연결의 입력 스트림을 생성합니다.
BufferedReader in = 새로운 bufferedReader
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(s.getOutputStream())), true); 리더.
BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("문자열을 입력하고 종료하려면 BYE를 입력하세요! ");
while(true) {
// 콘솔에서 입력된 문자열을 읽어서 네트워크 연결로 출력, 즉 서버로 데이터를 보냅니다.
out.println(stdin.readLine());
문자열 str = in.readLine();
String str = in.readLine();
~ ~ (IOException e) {
System.err.println("IOException" . 먼저 java.net 패키지의 Socket 클래스를 이용하여 연결 소켓을 설정한 후, Socket 객체의 getInputStream 메소드를 이용하여 서버로부터 데이터를 수신하고, Socket 객체의 getOuputStream 메소드를 이용하여 서버에 데이터를 전송한다. 입력 및 출력 스트림을 생성한 후에는 파일과 동일한 방식으로 데이터를 읽고 쓸 수 있습니다.
다중 클라이언트를 지원하는 "echo" 서버측 프로그램 코드는 다음과 같습니다.
코드 복사
코드는 다음과 같습니다:
package com.javapp.ch11;
import java.io.*;
import java.net.*;
/**
* 설명: 멀티 클라이언트 "echo" 서버 측 프로그램 지원
*/
공개 클래스 EchoServerThreadDemo {
// 서버측 서비스 포트입니다.
public static final int SERVERPORT = 990;
public static void main(String[] args) {
try {
// 연결된 클라이언트의 일련번호입니다.
정수 = 1;
~ 정수 숫자 = 1;
ServerSocket s = new ServerSocket(SERVERPORT);
System.out.println("Started: " s);
while (true) {
연결 소켓 설정 문자.
소켓 수신 = s.accept();
System.out.println("연결 " 번호 " 허용됨: ");
System.out.println(incoming);
스레드는 다음 용도로 사용됩니다. 서버와 클라이언트 간의 데이터 전송.
// 기본 프로그램은 요청이 들어오는지 계속 모니터링합니다. > }
}
}
class EchoThread는 Thread {
private Sockets를 확장합니다. ;
int n;
public EchoThread(소켓 수신, int 번호 ) {
s = 수신;
n = 번호;
}
} public void run() {
시도해 보세요 {
BufferedReader in = 새로운 bufferedReader
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(s.getOutputStream())),true);
System.out.println("안녕하세요! 종료하려면 BYE를 입력하세요." );
// 클라이언트의 입력을 에코합니다.
While (TRUE) {
// 클라이언트로부터 데이터를 받기 위해 네트워크에서 한 줄을 읽습니다.
string line = in.readline ();
// 수신된 데이터가 비어 있는 경우(비어 있는 데이터가 아닌 Enter를 직접 누른 경우) 사이클을 종료하고 연결을 닫습니다.
if (라인 == 작별 인사")) {
System.out.println( "클라이언트 " n "이 BYE를 입력했습니다!");
System.out.out.println ("Echo" n ":" line)
// 네트워크에 연결하여 행을 출력합니다. 즉, 클라이언트에 데이터를 보냅니다.
out.println("Echo " n ": " line);
s.close();
} catch(IOException e) {
System.err.println("IOException");
}
}
}
서버측 프로그램에서는 먼저 java.net 패키지의 ServerSocket 클래스를 사용하여 서버측 청취 소켓을 생성합니다. 그런 다음 ServerSocket 클래스의 accept 메서드를 사용하여 사용자 요청을 기다리고 수신합니다. 서버가 연결 요청을 받으면 서버와 클라이언트 간의 데이터 전송을 별도로 처리하기 위해 스레드를 시작합니다. 서버 측 데이터의 수신 및 전송은 위에서 설명한 클라이언트 측 데이터의 전송 및 도입과 동일합니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WindowsServerBackup은 WindowsServer 운영 체제와 함께 제공되는 기능으로, 사용자가 중요한 데이터 및 시스템 구성을 보호하고 중소기업 및 대기업 수준의 기업에 완벽한 백업 및 복구 솔루션을 제공하도록 설계되었습니다. Server2022 이상을 실행하는 사용자만 이 기능을 사용할 수 있습니다. 이 문서에서는 WindowsServerBackup을 설치, 제거 또는 재설정하는 방법을 설명합니다. Windows Server 백업을 재설정하는 방법 서버 백업에 문제가 있거나 백업에 너무 오랜 시간이 걸리거나 저장된 파일에 액세스할 수 없는 경우 Windows Server 백업 설정을 재설정하는 것을 고려할 수 있습니다. Windows를 재설정하려면

Microsoft는 Windows Server 빌드 26040 버전을 출시하면서 제품의 공식 이름을 Windows Server 2025로 발표했습니다. Windows11WindowsInsiderCanaryChannel 버전 build26040도 출시되었습니다. 일부 친구들은 수년 전에 누군가 Windows NT를 워크스테이션 모드에서 서버 모드로 성공적으로 전환하여 다양한 버전의 Microsoft 운영 체제 간의 공통점을 보여주었다는 것을 아직도 기억할 것입니다. 마이크로소프트의 현재 서버 운영체제 버전과 윈도우 11 사이에는 뚜렷한 차이가 있지만, 세부 사항에 주목하는 사람들은 윈도우 서버가 왜 브랜드를 업데이트했는지,

nginx의 기본 이름을 수정하는 방법은 조금 위장하거나 설치할 수 있습니다. 팁: 일반적으로 수정은 nginx가 컴파일되기 전에 이루어집니다. 수정 후에는 scr/core/nginx.conf#definenginx_version"1.4.7"#definenginx_ver"nginx/"n과 같이 코드를 다시 컴파일해야 합니다.

Microsoft는 데스크톱용 Win11 미리 보기 업데이트를 출시하는 동시에 Windows Server LTSC(장기 서비스 채널) 미리 보기 빌드 25335도 오늘 출시했습니다. 평소와 마찬가지로 Microsoft는 전체 변경 로그를 게시하지 않았으며 해당 블로그 게시물도 제공하지 않았습니다. Microsoft는 Windows Server 미리보기 버전 업데이트 로그를 Canary 채널 버전과 동일하게 조정했습니다. 새로운 콘텐츠가 도입되지 않으면 공식 블로그 게시물이 게시되지 않습니다. IT 홈의 참고 사항: 서버 브랜드는 업데이트되지 않았으며 미리 보기 버전에서는 여전히 Windows Server 2022입니다. 또한 Microsoft는 이미 시장에 출시된 Windows Server 2019 버전 대신 이러한 버전을 Windows Server vNext라고 부릅니다.

IT House는 3월 14일에 데스크톱용 Windows 11 Build 26080 미리보기 업데이트 외에도 Microsoft가 오늘 Windows Server Build 26080 미리보기 업데이트도 출시했다고 보도했습니다. 곧 출시될 Windows Server LTSC(장기 서비스 채널)의 최신 미리 보기 버전인 Windows Server Build 26080은 Data Center Edition 및 Standard Edition을 제공하며 사용자는 데스크톱 환경 및 Server Core 설치 옵션을 선택할 수 있습니다. 이 릴리스에는 컨테이너 호스트를 위한 연간 채널과 가상 머신 평가를 위한 Azure 릴리스도 포함되어 있습니다. IT House는 X 소셜 미디어를 쿼리합니다. 사용자 피드백은 오른쪽 하단에 있는 Copilot 버튼을 클릭합니다.

서버 일치 논리 nginx는 요청을 실행할 서버 블록을 결정할 때 주로 서버 블록의 청취 및 server_name 필드에 중점을 둡니다. 청취 명령 청취 필드는 청취 필드가 명시적으로 지정되지 않은 경우 서버 응답의 IP 및 포트를 정의합니다. 구성된 경우 기본 수신 0.0.0.0:80(루트) 또는 0.0.0.0:8080(비루트) 수신은 다음과 같이 구성될 수 있습니다. IP와 포트의 조합, 단일 IP, 기본적으로 포트 80에서 수신, 단일 포트 및 기본적으로 모든 IP 인터페이스에서 수신 대기 마지막 항목은 일반적으로 다른 인터페이스에서만 사용되는 unixsocket 경로

Ubuntu Server 11.04를 설치할 때 그래픽 인터페이스를 설치할 필요가 없다고 생각한다면 아직 완성되지 않은 GNOME 3는 말할 것도 없습니다. . 아니면 ARCH+GNOME3으로 빌드해야 합니다. 그러니 이 글을 읽으면서 시간을 낭비하지 마시기 바랍니다. 2박1일 걸렸고 N번 재설치 했습니다. 마침내 뭔가가 나왔습니다. 쉽지 않습니다. 더 이상 고민하지 않고 본론으로 들어가겠습니다. 하드웨어: ThinkPad 1개 (X61의 경우) 2. 부팅 옵션 인터페이스로 들어가서 USB 부팅을 선택한 다음 Ubu 설치를 선택합니다.

방화벽 방화벽 방화벽 서비스에는 CLI와 GUI의 두 가지 작동 모드가 있습니다. iptables와 비교하여 방화벽은 동적 업데이트를 지원하고 영역 개념을 도입합니다. 간단히 말해서, 영역은 방화벽에서 미리 정의한 방화벽 정책 집합을 말하며, 이러한 정책을 방화벽 간에 신속하게 전환할 수 있도록 하여 방화벽의 전환 효율성과 적용 속도를 크게 향상시킵니다. 신뢰할 수 있는 영역 기본 정책 규칙은 모든 홈 패킷이 들어오는 트래픽을 거부하도록 허용하지만 ssh, mdns, ipp-client 및 dhcpv6-client 서비스는 홈 영역 작업과 동등한 내부를 통과하여 들어오는 트래픽을 거부하도록 허용합니다.
