当前位置:  技术问答>java相关

不能用Socket或是ServerSocket读取数据

    来源: 互联网  发布时间:2015-07-01

    本文导语:  我参考Thinking Java 及其他人的例子写了一对简单的测试程序如下,现在的问题是不管哪一方都读不了数据,走到读数据的地方就吊死了,我如果加了setSoTimeout就永远超时,反正是什么都得不到。但如果我的客户端程...

我参考Thinking Java 及其他人的例子写了一对简单的测试程序如下,现在的问题是不管哪一方都读不了数据,走到读数据的地方就吊死了,我如果加了setSoTimeout就永远超时,反正是什么都得不到。但如果我的客户端程序往一个VB的测试程序发数据,VB就收得到,这个VB程序是我以前为VC写的测试模块,久经考验,肯定没问题。所以肯定是读数据的问题。

请各位高手帮忙看看,指点迷津。

客户端主程序:
      try
      {
s = new Socket("160.0.99.79",8090);//Socket客户端用它初始连接一次
        s.setSoTimeout(500);

        PrintWriter out =
          new PrintWriter(
            new BufferedWriter(
              new OutputStreamWriter(
                s.getOutputStream())),true);
        out.print("mytest.mytest");
        out.flush();

        BufferedReader in =
          new BufferedReader(
            new InputStreamReader(
              s.getInputStream()));

        String str = in.readLine();
        System.out.println(str);

        }
        catch( SocketException Se )
        {
   ... ...
        }
        catch( IOException IOe )
        {
   ... ...
        }


SERVER端主程序:

    ServerSocket s = new ServerSocket(8090);
    System.out.println("Started: " + s);
      // Blocks until a connection occurs:
      Socket socket = s.accept();
      try
      {
        System.out.println(
          "Connection accepted: "+ socket);
        BufferedReader in =
          new BufferedReader(
            new InputStreamReader(
              socket.getInputStream()));
        // Output is automatically flushed
        // by PrintWriter:
        PrintWriter out =
          new PrintWriter(
            new BufferedWriter(
              new OutputStreamWriter(
                socket.getOutputStream())),true);
        while (true)
        {
          String str = in.readLine();
          if (str.equals("END")) break;
          System.out.println("Echoing: " + str);
          out.println(str);
        }
      // Always close the two sockets...
      }

|
vb 送的字串后加一个vbCrLf 试试

|
我试了一下你的程序,是没问题的.
你的问题在于SERVER端接收是
String str = in.readLine();
而客户端发送out.print("mytest.mytest");没有加"n",
服务器自然没有反应.


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux串口程序可以发送数据,但是不能接受数据?谁知道原因?
  • 救急!Linux下WAS4.0不能启动(DB2 数据库也不能启动)
  • 紧急求助,我的程序连接数据库时,用localhost完全正常,而外部可以访问,但不能访问连接数据的那部分
  • jsp jdbc为什麽不能把数据insert到sql server 中,也不能从sql server中提取数据?!
  • 各位老大,现在嵌入式数据库都有哪些啊,我的设备配置如下,不知能不能装个数据库呢?
  • UDP SOCKET编程,不能发送广播数据包
  • 请问:在用proc方式往数据库插入数据时,我能不能定义一个结构体,它与表的每一项对应,将结构体赋好值后,再只将这个结构体插入表中,这行不行啊?
  • 数据库不能更新
  • sql数据库不能直接用instr函数
  • RpM数据库丢失不能安装软件怎么恢复阿?
  • 求救,数据集不能支持向前移动。
  • 好烦,linux下firefox不能上传数据到csdn!
  • 如何让一个JTextField如果录入错误的数据就不能转移焦点?
  • 在北京广播数据(Multicast)在广州能不能收到?
  • 数据库的汉字怎么不能显示?
  • 急!我的db2怎么不能创建数据库?
  • 中文问题:我的数据库中,中文写入没有问题,但中文却不能正常读出。(sqlserver2000)
  • 我不小心用mysqlfront把一个mysql数据库删除了,能不能恢复(没有备份),大家一定要救我阿。
  • 对象序列化--存储数据库的方法 序列化后 不能使用
  • 在交换机环境的以太网拦截数据包要怎么考虑哦?能不能给点帮助啊??
  • 申请加薪时绝对不能说的4件事!
  • 在LINUX下不能拷影碟还是不能拷.dat文件??
  • sqlserver登陆后报不能为空不能为null的错误
  • 修改/ETC/FSTAB后,系统不能进入,/文件系统只读,不能改,我该怎么办,分不是问题
  • 在Linux下访问Windows的NTFS分区为什么不能写,也不能删里面的东西?
  • EJB QL都支持什么函数啊?能不能支持trim函数呢?如果不能,应该怎么实现这样的功能呢?
  • 如何配置wu-ftp不能匿名登陆同时用户上传后的文件不能删除和修改?
  • 中文问题:我使用的是MEPIS Linux,系统不能显示中文,我能不能把Redhat中的中文字体移植到这个系统中?
  • 高难Unix问题,为什么不能通过中国网通的宽带联接(ADSL)不能看到我的网站?
  • 在linux下面使用相关的硬件,为何不能,系统不能检测到modem,网卡,以及其他,请教
  • 请问一下,在哪里可以找到一款刻录软件,可以将文件刻录到光碟,然后加密,使得我们只能读取,安装 ,而不能将光碟内容拷贝到硬盘上去???????? iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3