客户端发送字符串,由服务端接收并反转然后返回给客户端。
客户端
public static void main(String[] args) {
// TODO Auto-generated method stub
Socket s =null;
BufferedReader bufr=null;
PrintWriter out =null;
BufferedReader bufin=null;
try
{ //创建客户端对象
s = new Socket("192.168.0.101",9007);
while(true)
{ //键盘录入
bufr=new BufferedReader(new InputStreamReader(System.in));
//创建一个输出流
out =new PrintWriter(s.getOutputStream());
//创建一个获取输入流
bufin=new BufferedReader(new InputStreamReader(s.getInputStream()));
String line =null;
while((line=bufr.readLine())!=null)
{ //定义一个结束标记
if("over".equals(line))
break;
//向服务端发送数据
out.println(line);
String info=bufin.readLine();
//打印服务端返回的数据
System.out.println("info="+info);
}
}
}
catch(Exception e)
{ //异常处理
throw new RuntimeException("错误");
}
finally
{
if(s!=null)
try
{ //关闭客户端
s.close();
}
catch(Exception e)
{
throw new RuntimeException("错误");
}
}
}
服务端
public static void main(String[] args)throws Exception {
//创建一个服务端对象并与客户端连接
ServerSocket ss=new ServerSocket(9007);
Socket s =ss.accept();
//获取客户端的地址
String ip =s.getInetAddress().getHostAddress();
System.out.println(ip+".......is connected");
try
{
while(true)
{ //创建一个输出流
BufferedReader bufin =
new BufferedReader(new InputStreamReader(s.getInputStream()));
//常见一个获取输入流
PrintWriter out = new PrintWriter(s.getOutputStream());
String line =null;
while((line=bufin.readLine())!=null)
{
//打印从客户端获得的数据
System.out.println(line);
//建立一个缓冲区用于存储从客户端获得的数据
StringBuilder sb=new StringBuilder(line);
//将获得的字符串进行反转并打印
String re=sb.reverse().toString();
System.out.println(sb+"......"+re);
//将反转的的字符串返回给客户端
out.println(re);
}
}
}
catch(Exception e)
{ //异常处理
throw new RuntimeException("错误");
}
finally
{
if(s!=null)
try
{ //关闭客户端
s.close();
}
catch(Exception e)
{
throw new RuntimeException("错误");
}
if(ss!=null)
try
{ //关闭服务端
ss.close();
}
catch(Exception e)
{
throw new RuntimeException("错误");
}
}
}
可以 建立连接,但是客户端发送数据服务端接收不到啊。
|
|