Java 编写 Socket服务器与客户端时出现的理解上的问题

首先说明一下,大概是这样的程序,客户端连接服务器,服务器返回一条消息给客户端.其中有一句是PrintStreampout=newPrintStream(Client.ge... 首先说明一下,大概是这样的程序,客户端连接服务器,服务器返回一条消息给客户端.
其中有一句是PrintStream pout=new PrintStream(Client.getOutPutStream);(这是在服务器代码中的一句)
我想问的是,既然客户端只连接,又不发送信息,获取它的输出流干什么 ?这里我的理解很模糊,关于输入输出流,说什么像一条水管之类的我能理解,可这里为什么要这样。
在服务器端,最后还 有一句pout.println("Hello Word");
这句话是在服务器上发送的 .但是pout 是接受了客户端的输出流,而不是输入流,怎么会被客户端接受到呢?
我知道这一点,我想知道的是,服务器,往客户端上发东西,应该接受的是客户端的inputStream啊(进口), 而这程序看起来就好像,接受了出口在往出口上放"Hello world"
展开
 我来答
slz602
2011-08-09 · 超过16用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:38.6万
展开全部
基于你的这段代码 看起来像是client段的输出 其实不是的 ,
PrintStream pout=new PrintStream(Client.getOutPutStream);这个Client 是一个socket类 并不是代表是client的输出流 而是server段 socket的输出流。
看代码:
server端:
servSocket = new ServerSocket(port);
socket = server.accept();
sin = new DataInputStream( socket.getInputStream());
sout = new DataOutputStream (socket.getOutputStream());
client端:
socket = new Socket(host,port);
cin = new DataInputStream( socket.getOutputStream());
cout = new DataOutputStream (socket.getOutputStream());
连接后 server的sin 接受cout,client 端的cin 接受sout
你的那个Client.getOutPutStream是在server端 的 相当于我这个
sout = new DataOutputStream (socket.getOutputStream());
百度网友13380f0
2011-08-09 · 超过22用户采纳过TA的回答
知道答主
回答量:75
采纳率:100%
帮助的人:23.2万
展开全部
哈哈,这问题特变而简单。你见过水从水水管的两端(流入/出)吗?自然是从服务器端输出在客户端是写入了。从客户端出在服务器端是写入啊。这样数据流才能达到通信啊。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cxl525
2011-08-09 · TA获得超过574个赞
知道答主
回答量:540
采纳率:0%
帮助的人:248万
展开全部
~~~~~~~~~~~~~~~~~服务器也要返回东西给客户端啊,就表明客户端已经连接到了服务器!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cc2077a
2011-08-09
知道答主
回答量:18
采纳率:0%
帮助的人:4.5万
展开全部
客户端与服务器端是相互通信的吧,客户端发送请求至服务器端,服务器端根据请求返回相应的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式