`
sybilwh
  • 浏览: 12395 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

HTTP Server之回声服务器

    博客分类:
  • WEB
阅读更多
import java.io.IOException;

/**
 * Entry is HTTP Server entry, each socket create a thread
 * @author hui.wang
 *
 */
public class Entry {
	
	public static void main(String[] args){
		try{
			Server server = new Server(8080);
			server.run();
		} catch(IOException e) {
			System.err.println("Error binding the specified port.");
		}
	}

}

 

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


/**
 * Service support echo input to output
 * @author hui.wang
 *
 */
public class Service extends Thread {
	private Socket _socket;
	
	public Service(Socket socket) {
		_socket = socket;
	}
	
	public void run(){
		try{
			//Wrapper the InputStream to BufferedReader
			BufferedReader input = new BufferedReader(new InputStreamReader(_socket.getInputStream()));
			//Wrapper the OutputStream to BuffedWriter
			BufferedWriter output = new BufferedWriter(new OutputStreamWriter(_socket.getOutputStream()));
			String line = input.readLine();
			while( line != null ) {
				if(line.equals("quit"))
					return;
				output.write(line + "\r\n");
				output.flush();
				line = input.readLine();
			}
			input.close();
			output.close();
		} catch(IOException e){
			//Abandon the current connection
		} finally{
			try{
				//Close the connection.
				_socket.close();
			} catch(IOException e){
				//Eat the IOException
			}
		}
	}
	

}

 

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * One server instance, create service to execute operation.
 * @author hui.wang
 *
 */
public class Server implements Runnable {

	private ServerSocket _server;

	public Server(int port) throws IOException {
		// This statement will throw out IOException
		// if the specified port is not available.
		_server = new ServerSocket(port);
	}

	public void run() {
		try {
			for (;;) {
				// Accept an incoming connection.
				Socket client = _server.accept();
				// Create a Service Thread to serve the client.
				Service service = new Service(client);
				service.start();
			}
		} catch (IOException e) {
			// Eat the IOException
		}

	}

	

}
 

 

分享到:
评论

相关推荐

    WebsocketServer测试服务器

    WebSocketServer测试服务器是一种基于WebSocket协议的服务器实现,用于实时、双向通信。WebSocket协议是HTML5引入的一种在单个TCP连接上进行全双工通信的协议,它为客户端和服务器之间的数据交换提供了简单直接的...

    EchoServer:Java 上的回声服务器 (telnet)

    这个项目,"EchoServer:Java上的回声服务器(telnet)",提供了一个使用telnet协议的Java实现示例。 首先,我们要了解TCP/IP协议。TCP(传输控制协议)是互联网上应用最广泛的一种面向连接的、可靠的传输层协议。而IP...

    linux并发回音服务器与客户端

    4. **echo_server.c**:这个文件是服务器端的源代码。它包含了服务器的基本结构,如初始化套接字、绑定、监听、接受连接和处理来自客户端的数据。服务器接收到数据后,会将这些数据原封不动地回送给客户端,这就是...

    tf-echo:回声服务器的周到分配

    1. `index.js`或`server.js`:主服务器文件,包含了上述的回声服务器实现。 2. `package.json`:项目配置文件,定义了项目依赖和脚本。 3. `README.md`:项目说明文档,详细介绍了如何安装、运行和使用这个回声...

    udp_echo_svr_v6.rar_IPV6_ipv6 udp_linux server_linux 服务器_udp ser

    标题中的"udp_echo_svr_v6.rar"表明这是一个基于UDP协议的IPv6回声服务器的源代码包。在IPv6环境下,服务器程序通常用于测试网络连接性和数据传输,通过发送和接收UDP数据报来实现。UDP(User Datagram Protocol)是...

    http-echo:一个简单的HTTP请求和响应测试服务器

    http-echo 一个简单的HTTP请求和响应测试服务器。 主持人部署演示版地位回复 glitch....

    udp_echoserver DP83848网络服务函数库

    总结来说,这个项目展示了如何在STM32F407微控制器上利用DP83848网络服务函数库实现一个简单的UDP回声服务器。通过`udp_echoserver.c`和`udp_echoserver.h`文件的代码,我们可以学习到如何进行网络初始化、创建UDP套...

    benchmark-echo:python的echo服务器基准

    python echo服务器基准使用gevent,龙卷风,twisted,asyncio构建回声服务器,并比较它们的速度。 $sh benchmark.sh>benchmark.log结果在我的计算机上是: c ./server_libev 3100Throughput: 214467.02 [reqests/sec...

    echosever服务器

    EchoServer的工作机制是接收客户端发送的数据,然后将这些数据原封不动地回传给客户端,就像回声一样,因此得名。 在"echosever"中,选用的I/O模型是"select"。这是一个多路复用I/O模型,广泛应用于网络编程中。...

    echo服务器和客户端

    这个过程就像是声音在物理空间中的回声一样,因此得名echo。在TCP/IP协议族中,ICMP(Internet Control Message Protocol)协议提供了内置的回显服务,通过发送ICMP echo请求(ping命令)和回应(pong)来检查网络...

    基于MFC的回声TCP/IP协议编程

    在我们的回声服务器中,CAsyncSocket类将用于监听客户端的连接请求,接收数据并将其原样返回,这就是“回声”一词的由来。 服务器端实现: 1. 创建CAsyncSocket对象,设置监听模式。 2. 绑定到指定的IP地址和端口号...

    UDP_ECHO.rar_ udp_echo_server_UDP server client_echo server_them

    UDP_ECHO.rar 包含的是一个基于UDP协议实现的回显服务器(UDP Echo Server)和客户端(UDP Echo Client)的示例程序,它们用于测试网络连接和理解UDP协议的工作原理。 回显服务是网络通信中的一个基础概念,它接收...

    echo-server-ex:使用Elixir lang的简单exho服务器

    为了测试我们的回声服务器,可以使用telnet工具或者编写简单的HTTP客户端发送数据到服务器。一旦服务器正确地回显了接收到的数据,那么我们的回声服务器就成功实现了。 **总结** 通过Elixir构建回声服务器是一个很...

    java_sip_server

    Java_SIP_Server是一个基于Java平台的SIP(Session Initiation Protocol)服务器开发框架,它允许开发者构建复杂的VoIP(Voice over Internet Protocol)应用和服务。在本文中,我们将深入探讨SIP Servlets如何为...

    echo-server:实验回显服务器和相应的客户端(C++ WinSock)

    回声服务器是一种网络服务,它的主要功能是接收客户端发送的数据并原封不动地返回给客户端。这个服务在学习网络编程时经常被用作基础练习,因为它简单明了地展示了TCP或UDP协议的基本通信流程。本实验涉及的是使用...

    TCP_ECHO.rar_ECHO JAVA_echo server_java tcp server

    Echo服务器的基本功能是接收客户端发送的数据,并将这些数据原封不动地返回给客户端,类似于回声的效果。这对于调试网络连接、测试数据传输速度和验证TCP协议实现是非常有用的。 描述中提到的"echo server"和"一些...

    局域网的语音聊天系统,有服务器和客户端

    而“CS模式”通常指的是Client-Server(客户端-服务器)架构,这是一种常见的网络应用架构,其中客户端发送请求到服务器,服务器处理请求并返回结果给客户端。在这种模式下,语音数据会由客户端发送到服务器,然后由...

    基于TCP的通信程序

    基于TCP的通信程序通常涉及到客户端(Client)和服务器端(Server)之间的交互,确保数据的正确性和顺序。本篇将详细解析基于TCP的通信程序设计及实现的关键知识点。 首先,TCP是一种面向连接的协议,它在数据传输...

    echo-server:Echo Server是一个支持Docker且可扩展的Node.js应用程序,用于托管您自己的Socket.IO服务器以进行Laravel广播

    回声服务器 Echo Server是一个支持Docker且可扩展的Node.js应用程序,用于托管您自己的Socket.IO服务器以进行Laravel广播。 它建立在Socket.IO之上,并且在下面具有Pusher兼容的API服务器,这使在Laravel中的实现变...

    node-webserver

    "node-webserver" 项目提供了一个基础的 Node.js 回声服务器实例,展示了如何使用 JavaScript 和 Node.js 的 `http` 模块创建网络服务。项目还包括了日志和调试功能,这对于任何服务器端开发都是至关重要的。通过...

Global site tag (gtag.js) - Google Analytics