⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 echoserver.java

📁 简单的用java完成消息传输的例程
💻 JAVA
字号:
/*
C/S服务应用
程序功能:完成C/S结果的服务端响应.端口在8080  
作用:单线程实现镜面反射服务端,即客户端输入什么,服务端接收并返回什么
原理:通过Java中的  java.net.Socket实例来对网络输入流响应,和返回.
*/


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class EchoServer {
	// Choose a port outside of the range 1-1024:
	public static final int PORT = 8080;				//端口号  定义成公共静态的,在外部不用产生实例也能引用
	public static void main(String[] args) throws IOException {
		ServerSocket s = new ServerSocket(PORT); 	//建立ServerSocket实例完成服务端端口开启
		System.out.println("Started: " + s);
		try {
			// Blocks until a connection occurs:
			Socket socket = s.accept();			//通过accept()侦听服务端口,如果有则产生Socket实例.
			try {
				System.out.println("Connection accepted: " + socket);
				BufferedReader in =
					new BufferedReader(
						new InputStreamReader(socket.getInputStream()));		//取得Socket实例中的输入字节流并转换成字符流
				// Output is automatically flushed
				// by PrintWriter:
				PrintWriter out =
					new PrintWriter(
						new BufferedWriter(						//PringWriter(Socket.输出流 , "是否实时响应")			
							new OutputStreamWriter(socket.getOutputStream())),true);  //建立输出流实例
				while (true) {
					String str = in.readLine();		//读端口输入流
					if (str.equals("END"))			//遇到'END'结束进程并关口端口和流
						break;
					System.out.println("Echoing: " + str);  //向屏幕输出字符串
					out.println("Server: "+str+"!!!");		//向端口输出字符串
				}
				// Always close the two sockets...
			} finally {
				System.out.println("closing...");
				socket.close();	//关闭端口响应实例
			}
		} finally {
			s.close();  //关闭服务响应实例
		}
	}
} ///:~

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -