Java 编写 Socket服务器与客户端时出现的理解上的问题
首先说明一下,大概是这样的程序,客户端连接服务器,服务器返回一条消息给客户端.其中有一句是PrintStreampout=newPrintStream(Client.ge...
首先说明一下,大概是这样的程序,客户端连接服务器,服务器返回一条消息给客户端.
其中有一句是PrintStream pout=new PrintStream(Client.getOutPutStream);(这是在服务器代码中的一句)
我想问的是,既然客户端只连接,又不发送信息,获取它的输出流干什么 ?这里我的理解很模糊,关于输入输出流,说什么像一条水管之类的我能理解,可这里为什么要这样。
在服务器端,最后还 有一句pout.println("Hello Word");
这句话是在服务器上发送的 .但是pout 是接受了客户端的输出流,而不是输入流,怎么会被客户端接受到呢?
我知道这一点,我想知道的是,服务器,往客户端上发东西,应该接受的是客户端的inputStream啊(进口), 而这程序看起来就好像,接受了出口在往出口上放"Hello world" 展开
其中有一句是PrintStream pout=new PrintStream(Client.getOutPutStream);(这是在服务器代码中的一句)
我想问的是,既然客户端只连接,又不发送信息,获取它的输出流干什么 ?这里我的理解很模糊,关于输入输出流,说什么像一条水管之类的我能理解,可这里为什么要这样。
在服务器端,最后还 有一句pout.println("Hello Word");
这句话是在服务器上发送的 .但是pout 是接受了客户端的输出流,而不是输入流,怎么会被客户端接受到呢?
我知道这一点,我想知道的是,服务器,往客户端上发东西,应该接受的是客户端的inputStream啊(进口), 而这程序看起来就好像,接受了出口在往出口上放"Hello world" 展开
4个回答
展开全部
基于你的这段代码 看起来像是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());
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());
展开全部
哈哈,这问题特变而简单。你见过水从水水管的两端(流入/出)吗?自然是从服务器端输出在客户端是写入了。从客户端出在服务器端是写入啊。这样数据流才能达到通信啊。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
~~~~~~~~~~~~~~~~~服务器也要返回东西给客户端啊,就表明客户端已经连接到了服务器!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
客户端与服务器端是相互通信的吧,客户端发送请求至服务器端,服务器端根据请求返回相应的结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询