package tcp;
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 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ServerSocket serverSocekt = null;
Socket socket = null;
BufferedReader inBuffer = null;
PrintWriter out = null;
try
{
serverSocekt = new ServerSocket(12);
System.out.println("The server is start:" + serverSocekt);
socket = serverSocekt.accept();
System.out.println("Accpet the Client:" + socket);
inBuffer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
while(true)
{
String instr = inBuffer.readLine();
System.out.println("In Server reveived the info:" + instr);
if (instr.equals("bye"))
{
break;
}
out.println(instr);
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
if (socket != null)
{
socket.close();
}
if (inBuffer != null)
{
inBuffer.close();
}
if (out != null)
{
out.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
package tcp;
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.NetworkInterface;
import java.net.Socket;
import java.net.UnknownHostException;
public class EchoClient {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String hostname = "localhost";
if (args.length > 0)
{
hostname = args[0];
}
PrintWriter out = null;
BufferedReader networkIn = null;
Socket theSocket;
try {
System.out.println(hostname);
theSocket = new Socket(hostname, 12);
networkIn = new BufferedReader(new InputStreamReader(theSocket.getInputStream()));
BufferedReader userIn = new BufferedReader(new InputStreamReader(System.in));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(theSocket.getOutputStream())), true);
System.out.println("connect to echo server.");
while(true)
{
String theLine = userIn.readLine();
if (theLine.equals("."))
{
break;
}
out.println(theLine);
out.flush();
System.out.println(networkIn.readLine());
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
System.err.println(e);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if (networkIn != null)
{
try
{
networkIn.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (out != null)
{
out.close();
}
}
}
}
分享到:
相关推荐
本文将深入探讨一个基于C语言实现的Unix Echo服务器和客户端系统。这个系统由两个主要部分组成:Echo服务器和Echo客户端,它们通过TCP套接字进行通信。下面我们将详细讨论相关知识点。 首先,我们要了解**TCP...
Echo服务器是一种简单的网络应用程序,它的主要任务是接收来自客户端的数据,然后将这些数据原封不动地返回给客户端。这种服务在早期的网络调试和测试中非常有用,因为它可以帮助验证数据传输的正确性和完整性。 ...
在IT领域,"echo服务器和客户端"涉及到网络通信的基本概念,特别是TCP/IP协议中的回显服务。回显服务主要用于测试网络连接和数据传输,通过发送数据包并接收相同的数据包来验证网络通信的有效性。在这里,我们将深入...
尽管Echo服务器和客户端是简单的示例,但在实际的网络应用中,我们必须考虑安全因素,例如使用SSL/TLS加密连接以保护数据的隐私。此外,还需防止拒绝服务攻击,限制并发连接数量,以及正确处理异常和错误。 总的来...
在Linux系统中,实现并发回音服务器和客户端是学习网络编程和多线程技术的一个经典实践。这个项目涉及到了许多核心的计算机科学概念,包括网络通信、进程管理、并发处理和I/O操作。以下是关于这个主题的详细知识阐述...
本文将详细介绍基于TCP服务器和客户端程序设计的知识点,涵盖了服务器完整程序设计、ECHO服务器的工作原理、TCP服务器和客户端的交互机制等方面。 服务器完整程序设计 在开始之前,我们需要理解什么是服务器和...
在Linux操作系统中,"echo"服务通常指的是一个简单的TCP/IP通信示例,它涉及客户端和服务器端程序。这个服务主要用于教学目的,帮助初学者理解网络编程的基本原理,特别是socket编程。在这里,`echo_s.c`代表服务器...
- TCP echo服务器接收客户端的数据后,会使用`read()`或`recv()`函数读取接收到的数据,然后使用`write()`或`send()`函数将这些数据原封不动地返回给客户端。这个过程确保了数据的完整性和顺序。 4. **多线程/异步...
WSAAsyncselect 模型中,服务器与客户端消息的收发_vs2010 C++ Windows网络编程 服务器与客户端消息的收发 详细: http://blog.csdn.net/yulinxx/article/details/27700569
总结,IOCP echo server client项目展示了如何利用IOCP实现高性能的服务器和客户端通信,它能够有效地处理大量并发连接,提高系统的吞吐量。在实际开发中,理解并熟练掌握IOCP技术对于构建高效、稳定的服务端系统...
Java Echo服务是一种基于TCP/IP协议的简单通信模型,主要用于测试网络连接和数据传输。Echo服务的基本原理是,客户端发送数据到服务器,服务器接收到数据后原样返回给客户端,就像回声一样。在这个过程中,我们可以...
创建一个简单的Echo服务器和客户端: - 服务器接收客户端发送的数据,并原样返回。 - 客户端向服务器发送数据,然后接收并打印服务器的回应。 通过以上步骤,我们可以了解Netty的基本使用和工作流程。在实际项目中...
epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
本实验旨在通过实际操作,掌握TCP套接字的基本操作,包括服务器端的建立、监听、接受连接以及客户端的连接、发送和接收数据。以下是实验的主要知识点: 1. **TCP套接字的基础概念**: TCP(Transmission Control ...
go install -buildmode=exe github.com/hellgate75/udpsample/cmd/x/udpserver安装客户端示例命令: go install -buildmode=exe github.com/hellgate75/udpsample/cmd/x/udpclient命令用法启动UDP Echo服务器:
在"EchoServer.rar"和"EchoClient.rar"这两个压缩文件中,应该包含了已经实现的服务器和客户端代码。通过解压并导入Eclipse,开发者可以查看和学习这些示例代码,理解如何在实际项目中应用Netty。 这个简单的例子...
我们将从服务器端和客户端两个角度来阐述这个过程。 首先,我们需要在服务器端设置一个可以接收客户端请求的服务。这里我们可以使用PHP作为服务器端语言,因为PHP可以轻松地与MySQL数据库进行通信。创建一个名为`...
使用child_process实现node.js Echo 服务器和客户端的概念child_process 这个概念验证的动机是我对在运行node.js会话的技术的研究。 安装 git clone https://github.com/n-riesco/node-echo.git npm install node-...
TCP Echo服务器和客户端是网络通信中的一个基础概念,主要用于测试网络连接和数据传输的可靠性。在本案例中,"tcpecho.rar" 是一个压缩包,包含了一个名为 "tcp echo" 的程序或脚本,用于实现TCP协议的Echo服务。...
当你开发不同类型的软件时,你总会需要进行C/S的开发。 完成一个完善的C/S代码对于编码人员来说是一件困难的事情。 本文给出了一个简单的但是却是却... 随后,我将展示一个可以处理多连接和文件传输的echo C/S程序。