黑马程序员技术交流社区
标题:
Tcp传输
[打印本页]
作者:
chenguoyu520
时间:
2015-10-6 21:19
标题:
Tcp传输
Echo程序是一个网络编程通信交互的一个经典示例,称为回应程序。即客户端输入哪些内容,服务端会在这些内容前加上“ECHO:”并将信息发回给客户端,下面便是这个程序。
/*
Tcp传输经典示例:ECHO程序
*/
import java.net.*;
import java.io.*;
class EchoServer
{
public static void main(String[] args) throws Exception
{
ServerSocket ss = null;//定义ServerSocket对象
Socket s = null;//定义Socket对象,表示客户端
PrintStream out = null;//定义输出流
BufferedReader bufr = null;//用于接受客户端发来的消息
ss = new ServerSocket(8888);
while(true)
{
System.out.println("服务器运行,等待客户端连接");
s = ss.accept();//接受客户端连接
bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));//得到客户端的输入信息
out = new PrintStream(s.getOutputStream());//实例化客户端输出流
boolean flag = true;
while(flag)
{
String str = buf.readLine();
if(str==null || "".equals(str))
{
flag = false;
}
else
{
if("bye".equals(str))//定义一个结束标记
{
flag = false;
}else
{
out.println("ECHO:"+str);//向客户端回显信息
}
}
}
out.close();//关闭输出流
s.close();//关闭客户端
}
ss.close();//关闭服务器端
}
}
class EchoClient
{
public static void main(String[] args)
{
Socket s = null;//创建Socket对象
s = new Socket("localhost",8888);//指定连接主机及端口
BufferedReader bufr = null;
PrintStream out = null;
BufferedReader input = null;
input =new BufferedReader(new InputStreamReader(System.in));//从键盘接收数据
out = new PrintStream(s.getOutputStream());//向服务器端输出信息
bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));//接收服务端输入信息
boolean flag = true;
while(flag)
{
System.out.println("输入信息:");
String str = input.readLine();//从键盘接受信息
out.println(str);
if("bye".equals(str))//定义接受标记
{
flag = false;
}else
{
String echo = bufr.readLine();//接受ECHO信息
System.out.println(echo);
}
}
s.close();//关闭Socket
bufr.close();//关闭输入流
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2