TCP IP技术实践:EchoServer创建与实现.pdfVIP

  • 0
  • 0
  • 约3.37千字
  • 约 4页
  • 2026-01-30 发布于北京
  • 举报

•创建EchoServer

packagecom.sockettest;

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.InputStreamReader;

importjava.io.OutputStream;

importjava.io.PrintWriter;

importjava.net.ServerSocket;

importjava.net.Socket;

publicclassEchoServer{

privateintport=8000;

privateServerSocketserverSocket;

publicEchoServer()throwsIOException{

if(serverSocket==null){

//服务器程序通过一直监听端口,来接受客户程序的连接请求.在服务

器程序中,需要先创建一个ServerSocket对象,

//在构造方法中指定监听的端口.

//ServerSocket的构造方法负责在操作系统中把当前进程注册为服务器

进程.

serverSocket=newServerSocket(port);//监听

8000端口

System.out.println(服务器启动!);

}

}

publicStringecho(Stringmsg){

returnecho:+msg;

}

//Socket类提供getOutputStream()方法,返回输出流OutputSteam对象,程序

只需向输出流写数据,就能向对方发送数据,

//Socket的输出流可以用过滤流来装饰,这个方法中先获取输出流,然后用

PrintWriter装饰它,PrintWriter的println()方法能够写一行数据.

privatePrintWritergetWriter(Socketsocket)throwsIOException{

OutputStreamsocketOut=socket.getOutputStream();

returnnewPrintWriter(socketOut,true);//参数true表示每写一行,

PrintWriter缓存就自动溢出,把数据写到目的地

}

//Socket类提供getInputStream()方法,返回输入流InputStream对象,程

序只需从输入流读数据,就能接收来自对方的数据,

//Socket的输入流也可以用过滤流来装饰,这个方法中先获取输入流,然后

用BufferedReader装饰它,BufferedReader的readLine()方法能够读入一行数

据.

privateBufferedReadergetReader(Socketsocket)throwsIOException{

InputStreamsocketIn=socket.getInputStream();

returnnewBufferedReader(newInputStreamReader(socketIn));

}

/**

EchoServer类最主要的方法,它不断等待客户的连接请求,当

serverSocket.accept()方法返回一个Socket对象时,就意味着与一个客户建立

了连接,接下来从Socket对象中得到输出流和输入流,并且分别用PrintWriter

和BufferedReader来装饰它们.然后不断调用BufferedReader的readLine()

方法读取客户发来的字符串XXX,再调用PrintWriter的println()方法向客户

返回字符串echo:XXX.当客户发来的字符串为bye时,就会结束与客户的

通信,调用socket.close()方法断开连接.PS.这个方法无法同时与多个客户通

信.EchoServer接收到一个客户连接,就

文档评论(0)

1亿VIP精品文档

相关文档