


Introduction to the method of using Java to implement simple server/client echo function_Basic knowledge
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:
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.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

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

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 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

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.

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.

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

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

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
