理解Socket通信中的Input和Output

Socket通信中的Input、Output。

Client端,香港服务器租用,也就是发出请求的一端有一个Socket对象;Server端,即处理请求的一端也有一个Socket对象。

–Client端–

Socket对象的InputStream,可以理解为Client端的收件箱,Server端传来的信息会进入Client端Socket的InputStream中(进入Client端的收件箱)。当我们使用网络邮箱去检查收件箱时,其实完全的步骤是:

1.点击收件箱;

2.邮箱页面通过浏览器(客户端)向服务器发送查看收件箱的请求(也可以理解为从服务器端获取最新的信件);

3.服务器接收到请求,将信件(消息)传给浏览器(客户端);

4.客户端从收件箱中读出信件,并展示在屏幕上。

将上述步骤对应到程序代码上,再看:

Socket对象的OutputStream,虚拟主机,可以理解为Client端的发件箱,你只需将要发出去的消息写到OutputStream中(放入发件箱),该消息就会被传送至服务器端。

这里需要注意的一点,服务器空间,当创建连接时,需要设置一下URLConnection的setDoOutput(true)。如果不设置这个参数,默认情况下客户端是不能发送消息(url请求不算在内)到服务器端的。

–Server端–

Server端的Socket就简单多了,同上,Server端的InputStream也即Server端的收件箱,Client端发来的消息会被放在Server端Socket的InputStream里。而Server端Socket的OutputStream是用来将消息发送出去的。

总结:

Client端创建连接,并发出请求给Server端;

Server端从自己的InputStream中收到请求的具体内容,做一些具体的处理工作;

Server端将处理好的数据放入自己的OutputStream;

Client端从自己的InputStream读出Server端发过来的数据。

============================

Server端将数据放入自己的OutputStream中,数据可以被Client从自己的InputStream中取出来;

Client端将数据放入自己的OutputStream中,数据可以被Server从自己的InputStream中取出来。

就这么简单。

本文出自 “BitterJava” 博客,请务必保留此出处

鸟的翅膀在空气里振动,那是一种喧嚣而凛裂的,

理解Socket通信中的Input和Output

相关文章:

你感兴趣的文章:

标签云: