A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我为你着迷 金牌黑马   /  2015-1-1 16:18  /  1213 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
import java.net.*;
class TransClient
{
        public static void main(String[] args) throws Exception
        {
                Socket s=new Socket("192.168.1.101",10005);
               
                //定义读取键盘数据的流对象
                BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
               
                //定义目的,将数据写入到socket输出流。发给服务端。
                BufferedWriter bufOut=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));//目的是socket输出流
               
                //定义一个socket读取流,读取服务端返回的大写信息.
                BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
                       
               
                String line=null;
                while((line=bufr.readLine())!=null)//读取键盘
                {
                        if("over".equals(line))
                                        break;
                               
                               
                  bufOut.write(line);
                  bufOut.newLine();
                  bufOut.flush();
                  
                  String str=bufIn.readLine();//读取服务端
                  System.out.println("server:"+str);
                }
               
                bufr.close();
                s.close();
        }
}

/*
服务端:
源:socket读取流
目的:socket输出流。
都是文本 装饰。
*/
class TranServer
{
        public static void main(String[] args) throws Exception
        {
                ServerSocket ss=new ServerSocket(10005);
               
                Socket s=ss.accept();
               
                String ip=s.getInetAddress().getHostAddress();
                System.out.println(ip+"...connected");
               
                //读取socket读取流中的数据
                BufferedReader         bufln=new BufferedReader(new InputStreamReader(s.getInputStream()));
               
                //目的socket输出流,将大写数据写入到socket输出流并发送给客户端。
                BufferedWriter bufOut=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
               
                String line=null;
                while((line=bufln.readLine())!=null)
                {
                        bufOut.write(line.toUpperCase());       
                        bufOut.newLine();
                        bufOut.flush();
                }
                s.close();//关掉客户端
                ss.close();//关掉服务端。
        }       
}

大家好  谁能帮我看下这段代码啊 就是我在客户端录入数据之后在服务端显示不出来,代码是和视频里一样的,刷新也刷了换行也换了 就是不行 真是见鬼了  非常的郁闷  哪位大神或者版主帮我看下啊谢谢了黑马币大量奉上啊 谢谢了

8 个回复

倒序浏览
你用的是Eclipse么,别的不知道,反正我用Eclipse时候就不能用,但是改用命令行编译运行的时候就能用。不知道怎么回事。如果你用是Eclipse就用命令行的方式运行一下试试吧。
回复 使用道具 举报
南柯一梦境 发表于 2015-1-1 16:43
你用的是Eclipse么,别的不知道,反正我用Eclipse时候就不能用,但是改用命令行编译运行的时候就能用。不知 ...

我还没用Eclipse呢   用的是高级编辑器  就是命令行的呢   哥们  你把这个代码复制到你编辑器试下看看行不行  
回复 使用道具 举报
代码为什么不粘到代码块中?
回复 使用道具 举报
大家好  谁能帮我看下这段代码啊 就是我在客户端录入数据之后在服务端显示不出来,代码是和视频里一样的,刷新也刷了换行也换了 就是不行

就是我在客户端录入数据之后在服务端显示不出来?
服务器端你本来就没有写输出到打印控制台上啊。。。。。

服务器端能显示   192.168.xxx.xxx...connect  吗?
如果没有显示则表示未连接成功,可能你的IP有变化了,改IP,还是不行,就换另一端口试一试。如果还是无连接的话,没必要折腾了。

评分

参与人数 1黑马币 +20 收起 理由
我为你着迷 + 20 奥 那好吧 不折腾了

查看全部评分

回复 使用道具 举报
常强儿 发表于 2015-1-1 23:00
代码为什么不粘到代码块中?

我代码粘贴进去的时候代码总是不对齐  看着很难看呢
回复 使用道具 举报
谢谢楼主分享,又学到很多东西
回复 使用道具 举报
kerner 发表于 2015-1-1 23:34
大家好  谁能帮我看下这段代码啊 就是我在客户端录入数据之后在服务端显示不出来,代码是和视频里一样的, ...

哥们问下你哦 你说这里边这么多的资源  为啥只关闭了 bufr.close();   s.close();呢  
              
回复 使用道具 举报
我为你着迷 发表于 2015-1-2 10:38
哥们问下你哦 你说这里边这么多的资源  为啥只关闭了 bufr.close();   s.close();呢  
               ...

从套接字getInputStream or getOutputStream获取的流,在s.close()方法中,应该会被自动调用关闭。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马