用字符流实现的SOCKET连接不能进行双向传递

原创 2006年06月08日 19:21:00

证明:

当我用字符流实现了服务器端和客户端的连接后,从客户端发送字符串给服务器端,服务器端收到信息后再回传一个信息给客户端此时出现了阻塞,如改用其他流均可实现双向传递。

服务器端程序:
import java.net.*;
import java.io.*;
public class MyServer
{
 private static BufferedReader in;
 private static PrintWriter out;
 public static void main(String args[])
 {
  ServerSocket ss=null;
  try {
   ss=new ServerSocket(1235);
     }
     catch (Exception ex) {
     }
     while(true)
     {
      try {
       System.out.println ("服务器正在监听!");
       Socket socket=ss.accept();
       //建立读连接
       
    in=new BufferedReader(new InputStreamReader(socket.getInputStream ()));
    //建立写连接
    out=new PrintWriter(socket.getOutputStream ());
    //读消息
    
    System.out.println (in.readLine());
    //写消息
    
    out.write("客户端你已经被踢出去了!");
    
    out.flush();
    out.close();
   // break;
      }
      catch (Exception ex) {
       System.out.println ("有问题!");
      }
     }
 }
}
客户端程序:
import java.net.*;
import java.io.*;
public class Client
{
 private static BufferedReader in;
 private static PrintWriter out;
 public static void main(String args[])
 {
  try {
  // Socket socket=new Socket("127.0.0.1",1235);
  Socket socket=new Socket();
   InetAddress ia=InetAddress.getLocalHost();
   InetSocketAddress isa=new InetSocketAddress(ia,1235);
  // socket.bind(isa);
   socket.connect(isa);
   
   //建立读连接
   in=new BufferedReader(new InputStreamReader(socket.getInputStream ()));
   //建立写连接
   out=new PrintWriter(socket.getOutputStream ());
   //发送消息
   out.write("服务器登录了! ");
   
   out.flush();
     
  // System.out.println (in.readLine());//如果将这条语句的注释标记去掉将发生阻塞无法正常读取服务器端发来的数据
   in.close();
   out.close();
     }
     catch (Exception ex) {
      System.out.println ("客户端有问题!"+ex);
     }
 }
  
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

socket发送字符流,无法接收回复的流

00 socket发送字符流,无法接收回复的流3 服务端:  Java代码   package socket;      import java.io....
  • aree
  • aree
  • 2014-04-03 17:11
  • 846

IO学习(七)用字符流进行纯文本的读取和写出

纯文本的读取,步骤: 1.建立联系 file对象 2.选择流: Reader FileReader 3.读取:char[] flush=new char[1024]; 4.关闭资源

字节流字符流

基于字节流和字符流实现的文件复制

package com.neusoft.mytest.myproj; 002 003 import java.io.*; 004 005 import java.io....

生成任意ASCII字符流

java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝

接上一篇的字节流,下面主要介绍字符流,字符流和字节流的区别以及文件复制拷贝。在程序中一个字符等于两个字节,而一个汉字占俩个字节(一般有限面试会问:一个char能否存下一个汉字,答案当然是能了,一个ch...

字节转换字符流...

  • 2008-03-26 10:29
  • 3.10MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)