`
约巴拿
  • 浏览: 19740 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

对客户端和服务器端通信的理解

阅读更多

对客户端和服务器端通信的理解

一、关键词解释

  客户端:能向服务器发送信息,提出请求。

  服务器能接收客户端发来的请求,并能发送数据给客户端以做出回应。

从这里可以看出,我们的电脑可以充当双重角色。

1、当我们用浏览器浏览网页,要查看某个文件时,我们的电脑会发出请求给文件服务器,文件服务器收到请求并同意后,将文件数据传送到我们的电脑。此时,电脑充当客户端的角色。

2、当电脑和打印机通信后,打印机发送打印请求,此时我们可以令电脑发出打印信息(打印内容,单/双页打印等等)给打印机,打印机就可以开始打印了。此时电脑充当服务器的角色。

 

二、疑问及其理解

    客户端与服务器是怎样进行通信的?

以上面的电脑例子来说的话。

1、通信首先需要进行通信的实体

  电脑&&文件服务器(可能是台功能强大的电脑),电脑&&打印机。

2、然后是通信的媒介

  如上面例子中用到的电缆或光缆,当然也可能是介于某一频谱范围内的看不见的无线电波。

3、最关键的是通信协议

  电脑要和打印机交流,必须要规定通信的规矩,即协议(电脑发送一段数据过去,也许就是一个符号'Y',但打印机需要明白这是要打印的意思,所以他们事先要规定好什么是什么的意思,才不会出现对牛弹琴的现象)。当然,协议可多了,远不止于这一点。信息从电脑发出到文件服务器,就进过了许多的协议。本来是一段文字,经过某种协议被转化成能在媒介中传递的电信号或电磁波等信号,这些信号要达到文件服务器那一端,中途可能会碰到一系列的节点(能接受信息并做出处理的系统,如路由器),节点会按照某种协议告诉这些信号该怎样走才能到达文件服务器,然后信号开始沿着该节点告诉他的方向继续传递(要知道互联网的线路可是比蜘蛛网复杂的多,没有中间一系列节点的帮助,要达到目的地可不容易啊!)。最好要到达目的地时,要按照协议将电信号或电磁波信号转换为文件服务器能识别的信息。意思大概就是这样,如果想知道具体什么协议的话,就需要查看相关文献了,重中之重莫过于TCP/IP协议了。

 

三、用socket套接字实现应用程序间的通信

1、应用程序作为服务器时,可以用以下代码实现:

   ServerSocket server=new ServerSocket(int Port);

//server是创建的服务器对象,Port为该服务器占用的端口号,只有当服务器和客户端的端口号相同时才能连接成功。

     在服务器端进行等待:

         Socket socket2=server.accept();//服务器等待客户机的访问,程序运行到此处将被堵塞,即不向下继续执行,直到有客户机访问该服务器

2、应用程序作为客户端时,可以用如下代码来创建将与端口号一致的服务器相连的客户端:

   Socket client=new Socket(String IP,int Port);

  //client是创建的客户端对象,IP、Port分别是该客户端占用的IP号、端口号,此时服务器的socket2被声明成功,堵塞状态不复存在,程序继续向下执行

3、客户端和服务器连上后,需要进行他们之间的通信,怎么办呢?可以分别获取两个对象的输入、输出流对象,以进行读写操作。

    获取客户端的输入、输出流对象:

   InputStream is_client=socket.getInputStream();

    //is_client是客户端socket的输入流对象

   OutputStream os_client=socket.getOutputStream();

    //os_client是客户端socket的输入流对象

  同样的,可以获取服务器端的输入、输出流对象:

 InputStream is_server=socket2.getInputStream();

    //is_server是客户端socket的输入流对象

   OutputStream os_server=socket2.getOutputStream();

    //os_server是客户端socket的输入流对象

 

4、有了输入、输出流对象后,可以用读写操作进行服务器和客户端之间的通信了。

a、客户端写入信息,服务器获取信息:

      is_client.write("hello#".getBytes());//客户端写入"hello”,'#'是信息结束的协议

      StringBuffer sb=new StringBuffer();//sb是长度可动态变化的字符串对象,便于添加字符和字符串,用来保存下面服务器读到的信息

       char c;//用于保存读到的单个字节

       c=os_server.read();//将读到的一个字节存储到变量c中

      while(c!='#'){//当读到的字符不是表示信息结束的'#'时,就一直读取下去

              sb.append(c);//将读到的字符添加到sb中

              c=os_server.read();//继续读取下一个字节

       }

      接下来,服务器就可以对保存在sb中的信息进行相应的处理

b、同理,服务器回应客户端的过程,也就是服务器写入信息(os_server.write()),客户端读取信息(is_client.read())的,只是将上面的输入、输出流对象变换一下

 

 

 

 

分享到:
评论

相关推荐

    C#客户端和服务器端通信程序代码

    以上就是"C#客户端和服务器端通信程序代码"相关的知识点,通过理解和掌握这些概念,开发者可以构建出自己的网络通信应用程序。实际的代码实现细节会因应用场景和需求的不同而有所变化,但基本的原理和流程保持一致。

    java的客户端和服务器端通信代码,适合初学者

    通过上述的Java客户端和服务器端通信的基本过程,初学者可以理解如何构建简单的网络应用程序。随着学习的深入,还可以探索更多高级话题,如多线程处理多个客户端连接、使用NIO(非阻塞I/O)提高性能、以及更复杂的...

    传统蓝牙客户端和服务器端通信

    本文将深入探讨“传统蓝牙客户端和服务器端通信”的核心概念、实现方式以及Android平台上的具体应用。 蓝牙技术允许设备之间建立点对点或点对多点的连接,它在许多场景下都非常实用,比如音频传输、健康监测设备的...

    客户端和服务器端通信程序C#代码

    本篇将深入探讨客户端和服务器端通信程序的C#实现,以及在聊天实例程序中的应用。 首先,客户端是发起请求的一方,通常是一个用户界面,它与用户交互并发送数据到服务器。服务器端则是接收和处理这些请求,然后返回...

    客户端和服务器端通信程序

    总的来说,"客户端和服务器端通信程序"是一个涵盖广泛技术领域的项目,包括网络协议理解、C#编程技巧、多线程设计、数据编码和资源管理等多个方面。通过分析和学习"ChatClient"和"ChatServer"的源码,开发者可以深入...

    socket实现客户端与服务器端通信

    在IT领域,网络编程是不可或缺的一部分,而Socket编程则是实现客户端和服务器端通信的基础。本示例中的"socket实现客户端与服务器端通信"是一个简单的C#项目,它演示了如何使用Socket类在两者之间建立连接并进行数据...

    Android客户端与服务器端通信Demo

    总结,这个"Android客户端与服务器端通信Demo"涵盖了以下几个关键知识点: 1. 使用HTTP/HTTPS协议和RESTful API进行通信 2. Android客户端的网络请求库(如HttpURLConnection、OkHttp、Retrofit) 3. MyEclipse中...

    利用socket实现客户端服务器之间简单通信

    `TCP_server.py`文件通常包含了服务器端的代码,它会创建一个socket对象,绑定到特定的IP地址和端口,然后调用listen()方法监听连接。当有客户端连接时,accept()方法会被阻塞,直到客户端发起连接请求,此时服务器...

    客户端和服务器端的简单通信

    本教程将深入讲解如何使用Java的Socket API来实现客户端与服务器端的简单通信,实现一个基础的聊天功能。 首先,我们要理解客户端和服务器端的概念。客户端是发起请求的一方,而服务器端则是接收并响应请求的一方。...

    客户端和服务器端通信

    客户端和服务器端通信是计算机网络中的基础概念,它构成了互联网应用的核心部分。在这个过程中,客户端通常指的是用户设备上的应用程序,如浏览器、邮件客户端等,而服务器则是提供特定服务的计算机程序,例如网页...

    C#实例实现客户端和服务器端相互通信

    在本文中,我们将深入探讨如何使用C#语言和...同时,结合提供的客户端和服务器端源码,你可以进一步分析和理解代码结构,加深对网络通信的理解。对于初学者来说,这是一个很好的起点,可以帮助你逐步掌握网络编程技术。

    客户端与服务器端的简单实现工具

    在IT领域,客户端-服务器端(Client-Server)架构是一种常见的通信模式,广泛应用于网络应用程序设计,如网页浏览器、电子邮件系统、在线游戏等。在这个架构中,客户端是用户交互的界面,而服务器端则处理请求并提供...

    TCP 客户端与服务器端通信

    总结来说,TCP客户端与服务器端通信涉及网络基础、套接字编程和C++编程技巧。理解TCP连接的建立和断开机制,以及如何在C++中实现这一过程,是网络编程的重要技能。通过TCPClient和TCPServer这两个文件,我们可以深入...

    java实现TCP多客户端与服务器端的通信

    本篇文章将聚焦于如何使用Java来实现多客户端与服务器端的TCP通信。 首先,我们需要理解TCP通信的基本原理。TCP提供了一种点对点的、全双工的数据通信方式,通过三次握手建立连接,然后进行数据传输,最后通过四次...

    C# 聊天软件客户端和服务器端

    在IT领域,C#是一种广泛使用的编程语言,尤其在开发桌面应用、游戏和网络服务方面...开发这样一个系统需要扎实的C#基础,对网络通信有深入理解,并能灵活运用各种库和工具,以构建稳定、高效且用户体验良好的聊天平台。

    c#CSOCKET编程文档及实例含有客户端和服务器端源码

    本文将深入探讨C#中的CSocket编程,包括基本概念、原理以及如何创建客户端和服务器端的应用。 CSocket(或System.Net.Sockets.Socket)是C#中用于实现低级网络通信的类。它基于Berkeley Sockets API,允许开发者...

    socket编程实例,客户端和服务器端一对一信息传输

    在这个"socket编程实例,客户端和服务器端一对一信息传输"的示例中,我们将会探讨如何在Microsoft Visual C++ (VC++)环境下利用Socket API来构建一个简单的点对点通信系统。 首先,我们要了解Socket的基本概念。...

    基于WinSocket编程的客户端和服务器端通信程序

    本文将深入探讨“基于WinSocket编程的客户端和服务器端通信程序”的核心概念,以及如何通过提供的源码文件`TCPServer.cpp`和`TCPClient.cpp`进行理解和实践。 首先,我们要理解WinSocket的工作原理。WinSocket,...

    android手机新闻客户端和服务器端源码

    总结来说,"android手机新闻客户端和服务器端源码"涵盖了Android客户端开发、服务器端开发、网络通信、数据存储和处理等多个核心领域,为学习和理解移动应用的全栈开发提供了丰富的素材。通过研究这些源码,开发者...

    类qq聊天客户端,服务器端

    描述中提到“包含客户端服务器端的在数据库基础上的类qq程序”,意味着数据存储和检索是通过数据库来实现的,这通常是用来存储用户信息、聊天记录等关键数据。 首先,我们来讨论C#程序设计这一标签。C#是一种面向...

Global site tag (gtag.js) - Google Analytics