Home Web Front-end JS Tutorial Introduction to the method of using Java to implement simple server/client echo function_Basic knowledge

Introduction to the method of using Java to implement simple server/client echo function_Basic knowledge

May 16, 2016 pm 05:34 PM
client server

Socket refers to the endpoint of an inter-process communication link under a specific programming model. Because of the popularity of this particular programming model, the name Socket has been reused in other areas, including Java technology.

If a connection is to be established, one machine must run a process waiting for the connection, while another machine must try to reach the first machine. This phone system is similar: one party must initiate the call, while the other party must wait for the phone call.

java network model diagram

The following uses a server and client with "echo" function to introduce the application of java.net package to write network applications.

The main function of this example is that the server-side program waits for the client's input, then echoes the read information to the client, and outputs it on the server-side console at the same time. After the client receives the information from the console, it sends input to the client, receives the echo data from the server, and then displays it on the console.

The client program code is as follows:

Copy code The code is as follows:

package com.javapp.ch11;
import java.io.*;
import java.net.*;
/**
* Description: Server-side and client-side programs with "echo" function
*/
public class EchoClientDemo {
// Server-side service port.
public static final int SERVERPORT = 990;
public static void main(String[] args) {
try {
// Establish a connection socket.
Socket s = new Socket("localhost",SERVERPORT);
System.out.println("socket = " s);
// Create the input stream of the new network connection.
BufferedReader in = new bufferedReader
           PrintWriter out = new PrintWriter(new BufferedWriter(
            new OutputStreamWriter(s.getOutputStream())), true);                               Reader.
BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter a string, Enter BYE to exit! ");
          while (true) {
                                                        // Read the string input from the console and output it to the network connection, that is, send data to the server.
               out.println(stdin.readLine());
string str = in.readline ();
// If the received data is empty (if you press Enter directly, not empty data), then exit the loop and close the connection.
                                                                                                                                                                                                                                                                                                                                                                                                                                                    . (IOException e) {
        System.err.println("IOException"                                                                           . First, use the Socket class in the java.net package to establish a connection socket, then use the getInputStream method of the Socket object to receive data from the server, and use the getOuputStream method of the Socket object to send data to the server. After creating the input and output streams, you can read and write data in the same way as files.

The "echo" server-side program code that supports multiple clients is as follows:




Copy the code


The code is as follows:

package com.javapp.ch11;
import java.io.*;
import java.net.*;
/**
* Description: Supports multi-client "echo" server-side program
*/
public class EchoServerThreadDemo {
// Server-side service port.
public static final int SERVERPORT = 990;
public static void main(String[] args) {
try {
// The serial number of the connected client.
             int number = 1;
                                                                                                                                                                                                                           int number = 1;
ServerSocket s = new ServerSocket(SERVERPORT);
System.out.println("Started: " s);
while (true) {
, establish connection socket Character.
Socket incoming = s.accept();
System.out.println("Connection " number " accepted: ");
System.out.println(incoming);
                                                                   Threads are used for data transmission between the server and the client.
                                                                                                                                                         // The main program continues to monitor whether there are requests coming.
                                                                       } catch (IOException e) {
          System.err.println ("IOException");
}
}
}
class EchoThread extends Thread {
private Socket s;
int n;
public EchoThread(Socket incoming,int number ) {
s = incoming;
n = number;
}
} public void run() {
try {

BufferedReader in = new bufferedReader
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(s.getOutputStream())),true);
System.out.println("Hello! Enter BYE to exit." );
                                                                          // Echo the client’s input.
While (TRUE) {
// Read a line from the network to receive data from the client.
string line = in.readline ();
// If the received data is empty (if you press Enter directly, not empty data), then exit the cycle and close the connection.
                if (line ==                                                              BYE")) {
                          System.out.println( "The client " n " entered BYE!");
                              System.out. }
System.out.println ("Echo" n ":" line);
// connect to the network to output a row, that is, send data to the client.
                out.println("Echo " n ": " line);
s.close();
} catch (IOException e) {
System.err.println("IOException");
}
}
}


In the server-side program, first create a server-side listening socket using the ServerSocket class in the java.net package. Then use the accept method of the ServerSocket class to wait for and receive user requests. When the server receives a connection request, it starts a thread to handle the data transmission between the server and the client separately. The receiving and sending of server-side data is the same as the sending and introduction of client-side data described above.
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to install, uninstall, and reset Windows server backup How to install, uninstall, and reset Windows server backup Mar 06, 2024 am 10:37 AM

WindowsServerBackup is a function that comes with the WindowsServer operating system, designed to help users protect important data and system configurations, and provide complete backup and recovery solutions for small, medium and enterprise-level enterprises. Only users running Server2022 and higher can use this feature. In this article, we will explain how to install, uninstall or reset WindowsServerBackup. How to Reset Windows Server Backup If you are experiencing problems with your server backup, the backup is taking too long, or you are unable to access stored files, then you may consider resetting your Windows Server backup settings. To reset Windows

Windows Server 2025 preview version welcomes update, Microsoft improves Insiders testing experience Windows Server 2025 preview version welcomes update, Microsoft improves Insiders testing experience Feb 19, 2024 pm 02:36 PM

On the occasion of releasing the build 26040 version of Windows Server, Microsoft announced the official name of the product: Windows Server 2025. Also launched is the Windows11WindowsInsiderCanaryChannel version build26040. Some friends may still remember that many years ago someone successfully converted Windows NT from workstation mode to server mode, showing the commonalities between various versions of Microsoft operating systems. Although there are clear differences between Microsoft's current version of the server operating system and Windows 11, those who pay attention to the details may be curious: why Windows Server updated the brand,

How to modify the Nginx version name to disguise any web server How to modify the Nginx version name to disguise any web server May 14, 2023 pm 09:19 PM

How to modify the default name of nginx, you can disguise it a little, or you can install Tip: Generally, modifications are made before nginx is compiled. After modification, the code needs to be recompiled as follows: scr/core/nginx.conf#definenginx_version"1.4.7"#definenginx_ver"nginx/"n

Microsoft releases Windows Server vNext preview version 25335 Microsoft releases Windows Server vNext preview version 25335 Jan 10, 2024 am 08:49 AM

While Microsoft released the Win11 preview update for the desktop, today it also released the Windows Server Long Term Service Channel (LTSC) preview Build 25335. As usual, Microsoft did not publish a complete change log, or even provide a corresponding blog post. Microsoft has adjusted the Windows Server preview version update log to make it the same as the Canary channel version. If no new content is introduced, the official blog post will not be posted. Note from IT Home: The server brand has not been updated and is still Windows Server 2022 in the preview version. In addition, Microsoft calls these versions Windows Server vNext instead of the Windows version that is already on the market.

Microsoft releases Windows Server 26080 preview update: Fixes Feedback Hub failure Microsoft releases Windows Server 26080 preview update: Fixes Feedback Hub failure Mar 14, 2024 pm 07:11 PM

IT House reported on March 14 that in addition to the Windows 11 Build 26080 preview update for the desktop, Microsoft also updated and launched the Windows Server Build 26080 preview update. As the latest preview version of the upcoming Windows Server Long Term Servicing Channel (LTSC), Windows Server Build 26080 provides Data Center Edition and Standard Edition, and users can choose desktop experience and Server Core installation options. This release also includes an annual channel for container hosts, and an Azure release specifically for virtual machine evaluation. IT House queries X social media. User feedback clicks the Copilot button in the lower right corner.

What is the matching logic of Server and Location in Nginx? What is the matching logic of Server and Location in Nginx? May 12, 2023 am 11:10 AM

Server matching logic When nginx determines which server block to execute a request, it mainly focuses on the listen and server_name fields in the server block. The listen command listen field defines the IP and port of the server response. If the listen field is not explicitly configured, the default listening 0.0.0.0:80 (root) or 0.0.0.0:8080 (non-root) listen can be configured as: a combination of ip and port, a single ip, listening on port 80 by default, a single port, and listening on all ip interfaces by default A unixsocket path where the last entry is usually only used in different

Steps to install GNOME 3 on Ubuntu Server 11.04 Steps to install GNOME 3 on Ubuntu Server 11.04 Dec 31, 2023 pm 03:59 PM

If you think there is no need to install a graphical interface when installing Ubuntu Server 11.04, let alone GNOME 3, which is not yet complete. . Or it should be built with ARCH+GNOME3. So please don't waste your time reading any more. It took 2 nights and a day and reinstalled N times. Finally something has come of it. It's not easy. Without further ado, let’s get to the point: Hardware: One ThinkPad (For X61) 2. Enter the boot options interface, select USB boot, and then choose to install Ubu

Firewalld Linux firewall Firewalld Linux firewall Feb 19, 2024 pm 06:24 PM

The firewall firewall firewalld service has two working modes: CLI and GUI. Compared with iptables, firewall supports dynamic updates and introduces the concept of zone. In short, a zone refers to a set of firewall policies predefined by the firewall, which allows these policies to be quickly switched between firewalls, thereby significantly improving the switching efficiency and application speed of the firewall. The zone default policy rule trusted allows all packets home to deny incoming traffic, but the ssh, mdns, ipp-client, and dhcpv6-client services are allowed to pass through the internal equivalent of the home zone work and deny incoming traffic, but

See all articles