精华内容
下载资源
问答
  • 服务器端与客户端

    2009-10-30 16:37:00
    经常听到某某语言运行于服务器端客户端,可是不清楚到底是如何运行。于是上网搜了点资料,虽然还是比较疑惑,不过我想代码写多了就会明白的。 ...

     经常听到某某语言运行于服务器端或客户端,可是不清楚到底是如何运行。于是上网搜了点资料,虽然还是比较疑惑,不过我想代码写多了就会明白的。

     

    http://hi.baidu.com/%D0%A6%D2%F7%D0%A1%B1%F9%E9%D9/blog/item/5dc6283f53fbcdf2828b1393.html

     

    1. 服务器端
    常见的服务器端语言,php,jsp,asp
    像我们普通浏览网页给予一中BS模式,其实他也只是一中统一于Browser(浏览器)的CS模式。我们的浏览器作为客户端,在点击链接或者输入地址时,向目的主机发送HTML,FTP等等服务请求,然后目的主机根据请求类型,请求内容给予响应。这种万变不离其宗的服务形式普遍存在于所有的网络通信模式中。

    服务器脚本很简单,他是应于提交和处理表单,实现动态内容而出现的。想象一下一个中型网站大约有几千个链接地址,你总不能为每一个地址增加一个页面吧。于是服务器脚本从底层抽象出逻辑,把框架相同,但是内容不同的页面综合。最重要的是将逻辑处理与数据分开。于是,多个用户提交一个请求,大家享用了共同的逻辑处理方式,但是因为我提交的表单不一样,相应处理也会不同,于是返回内容也就不同

    假设你有Baidu搜索框,然后输入关键字点击搜索答案。这就是一个提交表单动作。即便关键字不同,服务器的底层处理方法都是没有改变的,但是他返回的结果就如你的映射y = f(x),f是逻辑处理,x是用户表单,y是返回内容。


    2. 客户端脚本,对应有 javascript,perl等等
    其实客户端脚本从javascript才有着重强调过,尤其是ajax技术的出现,让客户端被重视起来。

    很明显,服务器的数据都是存放在数据库中的,每一次查询都是需要数据库的链接,往往数据库链接比数据库查询更加费时。为了避免这种情况,网页设计者可以将简单的逻辑抽象出来,比如一次性读入整体的数据,然后将数据存入客户端(浏览器)的进程当中,这样下次就不用重新建立链接,我可以从自己机子上得到数据。根本不需要服务器频繁通信。
    客户端脚本的目的很明显,既避免了重复冗余的链接,有能缓解服务器的压力(你不用要求服务器多次查询数据库)。

    3.区别
    这样就很明显了,服务器脚本运行于服务器之上,你永远看不到服务器脚本的内容,得到的只有脚本解释器发回的HTML代码,浏览器对他照盘接收。客户端脚本脱离服务器运行,不直接执行数据库操作。他实现了客户端上的简单逻辑。Ajax技术让客户端脚本变的另类且强大,他让客户端语言将数据库操作封装起来,允许用户在一个界面实现完全分离的数据库操作请求。你可以查阅IBM的开发者社区,来了解Ajax技术内幕。通俗地总结:一般来说,如果一个函数需要与流星者进行直接的交互,那么它就只能在客户端使用。比如:Msgbox函数的作用是弹出信息对话框,需要浏览网页的人点击按钮。如果发现函数在服务端执行时语法和逻辑都正确却出错,那就是只能在客户端执行了。

    4.用法

    服务端脚本我作用"<% %>"括起来,所以ASP网页文件在服务器上执行的时候是不会执行这个标记以外的内容的。所以在写程序的时候千万要弄清楚不能搞混。而客户端为了让浏览器知道这是VBSCRIPT脚本语言,要用

    <script language="程序语言">

    VBScript 客户端脚本程序

    </script>

    服务端脚本是在ASP服务器上被执行的,而客户端脚本是由浏览器来执行的。

    展开全文
  • Python socket实现服务器端与客户端连接 服务器端与客户端每个5秒钟通信一次,具体实现如下: 服务器端代码 #!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:server.py import socket # 导入 socket 模块 ...

    Python socket实现服务器端与客户端连接

    服务器端与客户端每个5秒钟通信一次,具体实现如下:

    服务器端代码

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    # 文件名:server.py
     
    import socket               # 导入 socket 模块
    import time
    
    s = socket.socket()         # 创建 socket 对象
    host = socket.gethostname() # 获取本地主机名
    host='10.276.58.231'
    port = 8080                # 设置端口
    s.bind((host, port))        # 绑定端口
    s.listen(5)                 # 等待客户端连接
    while True:                  #新增接收链接循环,conn就是客户端链接过来而在服务端为期生成的一个链接实例
        conn,addr=s.accept()    #被动接受TCP客户端连接,(阻塞式)等待连接的到来,等待链接,多个链接的时候就会出现问题,其实返回了两个值
        print('连接地址:', addr)
        print('conn', conn)
        while True:
            try:
                data="server"
                conn.sendall(bytes(data,encoding="utf-8"))
                data=conn.recv(1024)
                print(str(data,encoding="utf-8"))
                
                while True:                 #新增通信循环,可以不断的通信,收发消息
                    a = 0
                # count = 0
                    while True:  
                        # count+=1
                        time.sleep(5)   #睡眠5秒
                        a+=1
                        keepclass = "Server->与服务器端已连接"+str(a*5)+"秒,发送时间:"+time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
                        # time.sleep(1)
                        conn.send(bytes(keepclass,'UTF-8'))  #发送消息
                        msg=conn.recv(1024*2)
                        msg.decode('utf-8')
                        print(str(msg.decode('utf-8')))
           
            except Exception as e:
               
                print(e)
                break
            conn.close()                #关闭连接  
    c.close()                # 关闭连接
    

    客户端代码

    #import socket module as socket
    import socket
    import sys
    ip_port=('10.276.58.231',8080)
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(ip_port)           #连接服务器端
    
    while True:                            #新增通信循环,客户端可以不断发收消息
         msg='wo shi kehuduan xingtiao'
         s.send(msg.encode('utf-8'))         #发送消息(只能发送字节类型)
         a=s.recv(1024)                           #接收消息
         sys.stderr.write('Client:' +str(a.decode('utf-8')) + '\n')
    s.close()                                       #socket关闭
    

    实现效果:
    服务器端效果:
    在这里插入图片描述
    客户端实现效果:
    在这里插入图片描述

    展开全文
  • 这篇文章主要介绍了python实现TCP服务器端与客户端的方法,以实例形式详解分析了Python实现服务器端与客户端的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了python实现TCP服务器端与客户端的方法。...

    这篇文章主要介绍了python实现TCP服务器端与客户端的方法,以实例形式详解分析了Python实现服务器端与客户端的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    本文实例讲述了python实现TCP服务器端与客户端的方法。分享给大家供大家参考。具体如下:
    TCP服务器程序(tsTserv.py):

    from socket import *
    from time import ctime
    HOST = ''
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    tcpSerSock = socket(AF_INET, SOCK_STREAM)
    tcpSerSock.bind(ADDR)
    tcpSerSock.listen(5)
    while True:
      print 'waiting for connection...'
      tcpCliSock, addr = tcpSerSock.accept()
      print '...connected from:', addr
      while True:
        data = tcpCliSock.recv(BUFSIZ)
        if not data:
          break
        tcpCliSock.send('[%s] %s' %(ctime(), data))
      tcpCliSock.close()
    tcpSerSock.close()
    

    TCP客户端程序(tsTclnt.py):

    from socket import *
    HOST = 'localhost'
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    tcpCliSock = socket(AF_INET, SOCK_STREAM)
    tcpCliSock.connect(ADDR)
    while True:
      data = raw_input('> ')
      if not data:
        break
      tcpCliSock.send(data)
      data1 = tcpCliSock.recv(BUFSIZ)
      if not data1:
        break
      print data1
    tcpCliSock.close()
    

    运行说明:先运行服务器程序,作用类似于打开服务器保持等待客户请求,再运行客户端程序。
    运行界面如下:
    服务器端:

    D:\code\ex>python tsTserv.py
    waiting for connection...
    ...connected from: ('127.0.0.1', 2883)
    waiting for connection...
    ...connected from: ('127.0.0.1', 2885)
    waiting for connection...
    ...connected from: ('127.0.0.1', 2889)
    waiting for connection...
    ...connected from: ('127.0.0.1', 2891)
    waiting for connection...
    ...connected from: ('127.0.0.1', 2892)
    waiting for connection...
    ...connected from: ('127.0.0.1', 2893)
    waiting for connection...
    

    客户端:

    D:\code\ex>python tsTclnt.py
    > 1
    [Thu Feb 02 15:52:21 2012] 1
    > 2
    [Thu Feb 02 15:52:22 2012] 2
    > 3
    [Thu Feb 02 15:52:22 2012] 3
    > 5
    [Thu Feb 02 15:52:23 2012] 5
    > 6
    [Thu Feb 02 15:52:24 2012] 6
    >
    D:\code\ex>
    

    希望本文所述对大家的Python程序设计有所帮助。

    展开全文
  • 关于服务器端与客户端的交互 首先,服务器端与客户端的交互涉及到两个方面,一个服务器,一个客户端。下面将进行的一个列子是,客户端发送信息给服务器端,服务器端根据客户发送的请求再返回信息给客户端。 服务器...
    

    关于服务器端与客户端的交互
    首先,服务器端与客户端的交互涉及到两个方面,一个服务器,一个客户端。下面将进行的一个列子是,客户端发送信息给服务器端,服务器端根据客户发送的请求再返回信息给客户端。
    服务器端:
    定义变量

            private TcpListener tcpListener; //监听
            private Thread listenThread;//线程
            private int connectedClients = 0;//连接数
            private delegate void WriteMessageDelegate(string msg);//发送返回信息的委托

    开始监听,并启动监听的线程

      private void Server()
            {
                this.tcpListener = new TcpListener(IPAddress.Loopback, 3000); // Change to IPAddress.Any for internet wide Communication
                this.listenThread = new Thread(new ThreadStart(ListenForClients));
                this.listenThread.Start();
            }
            private void ListenForClients()
            {
                this.tcpListener.Start();
    
                while (true) // Never ends until the Server is closed.
                {
                    //blocks until a client has connected to the server
                    TcpClient client = this.tcpListener.AcceptTcpClient();
    
                    //create a thread to handle communication 
                    //with connected client
                    connectedClients++; // Increment the number of clients that have communicated with us.
                    lblNumberOfConnections.Text = connectedClients.ToString();
    
                    Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm));
                    clientThread.Start(client);
                }
            }
    


    在开启的线程中,调用” HandleClientComm “这个方法来接受客户端发来的请求,其中传递的变量client是一个连接着服务器端的通信。从这个通信里面获取客户端发来的消息。

    private void HandleClientComm(object client)
            {
                TcpClient tcpClient = (TcpClient)client;
                NetworkStream clientStream = tcpClient.GetStream();
    
                byte[] message = new byte[4096];
                int bytesRead;
    
                while (true)
                {
                    bytesRead = 0;
    
                    try
                    {
                        //blocks until a client sends a message
                        bytesRead = clientStream.Read(message, 0, 4096);
                    }
                    catch
                    {
                        //a socket error has occured
                        break;
                    }
    
                    if (bytesRead == 0)
                    {
                        //the client has disconnected from the server
                        connectedClients--;
                        lblNumberOfConnections.Text = connectedClients.ToString();
                        break;
                    }
    
                    //message has successfully been received
                    ASCIIEncoding encoder = new ASCIIEncoding();
    
                    // Convert the Bytes received to a string and display it on the Server Screen
                    string msg = encoder.GetString(message, 0, bytesRead);
                    WriteMessage(msg);
    
                    // Now Echo the message back
    
                    //Echo(msg, encoder, clientStream);
                }
    
                tcpClient.Close();
            }
    
    在” HandleClientComm”这个方法中,使用” WriteMessage “返回对客户端的请求
            private void WriteMessage(string msg)
            {
                if (this.rtbServer.InvokeRequired)
                {
                    WriteMessageDelegate d = new WriteMessageDelegate(WriteMessage);
                    this.rtbServer.Invoke(d, new object[] { msg });
                }
                else
                {
                    this.rtbServer.AppendText(msg + Environment.NewLine);
                }
            }
    


    服务器端结束后,我们来看下客户端是如何发送请求,并且如何接受服务器端的请求。
    客户端
    初始化变量

       private string myMessage = ""; //发送的信息
       private TcpClient client = new TcpClient();//通信
       private IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3000);//链接的IP

    在页面加载时,就连接服务器端

      public Form1()
            {
                InitializeComponent();
                client.Connect(serverEndPoint);            
            }

    打开连接后,服务器端输入要发送的信息,并对信息发送,和对服务器端信息的接受

     private void RtbClientKeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyData != Keys.Enter || e.KeyData != Keys.Return)
                {
                    myMessage += (char)e.KeyValue;
                }
                else
                {
                    
                    SendMessage(myMessage);
                    
                    myMessage = "";
                
                }
            }
    
            private void SendMessage(string msg)
            {
                NetworkStream clientStream = client.GetStream();
    
                ASCIIEncoding encoder = new ASCIIEncoding();
                byte[] buffer = encoder.GetBytes(msg);
    
                clientStream.Write(buffer, 0, buffer.Length);
                clientStream.Flush();
    
                // Receive the TcpServer.response.
    
                // Buffer to store the response bytes.
                Byte[]  data = new Byte[256];
    
                // String to store the response ASCII representation.
                String responseData = String.Empty;
    
                // Read the first batch of the TcpServer response bytes.
                Int32 bytes = clientStream.Read(data, 0, data.Length);
                responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
                
                rtbClient.AppendText(Environment.NewLine + "From Server: " + responseData);
            }
    

    在上段代码中,负责发送的代码是

                NetworkStream clientStream = client.GetStream();
    
                ASCIIEncoding encoder = new ASCIIEncoding();
                byte[] buffer = encoder.GetBytes(msg);
    
                clientStream.Write(buffer, 0, buffer.Length);
                clientStream.Flush();
    

    负责接受的代码是

        // Receive the TcpServer.response.
    
                // Buffer to store the response bytes.
                Byte[]  data = new Byte[256];
    
                // String to store the response ASCII representation.
                String responseData = String.Empty;
    
                // Read the first batch of the TcpServer response bytes.
                Int32 bytes = clientStream.Read(data, 0, data.Length);
                responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
                
                rtbClient.AppendText(Environment.NewLine + "From Server: " + responseData);
    

    关于此处的client.GetStream 可以参照下面的链接
    # TcpClient.GetStream Method
    http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.getstream(v=vs.110).aspx
    完整的代码,可以参照如下的链接下载:
    # TCP / IP Server Client Example Part 1
    https://code.msdn.microsoft.com/windowsapps/TCP-IP-Server-Client-0964d476


    _______________________________________________________________________________________________________________________

    欢迎大神光临菜鸟博客,希望能得到各位大神在编码方面的指引,同时欢迎与我一样刚进入编程世界的朋友一起讨论学习!相信前进的道路上,有你们,编程世界会更加精彩!

    展开全文
  • Nodejs 服务器端与客户端之间的操作 这是一个小的程序引用。通过客服端执行程序。服务端接受程序并打印文本 服务器端 Server.js //nodejs Serverweb服务器 var qs = require('querystring'); require('http')....
  • 键盘输入文字使服务器端与客户端可以实现文字通信。 使用的是TCP协议。 TCP协议 客户端 创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应的服务器 调用Socket的getInputStream()和...
  • 计算机网络 socket编程实现服务器端与客户端连接 服务器端 #include <stdio.h> #include <stdlib.h> #include <winsock2.h> int main() { WSADATA wsaData; WSAStartup(MAKEWORD(2,2),&...
  • 理解 Memcache 的服务器端与客户端

    千次阅读 2012-11-08 09:41:38
    理解 Memcache 的服务器端与客户端 By kuco | Published: 2011/07/11 什么是 memcache ? 什么是 memcached ? 什么是 memcache.so ? 什么是 memcached.so ? 什么是 libmemcached.so ? 什么是 libmemcache ?...
  • TCP实现服务器端接收客户端发送过来的消息。 服务器端: import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; public class ServerDemo { public ...
  • WebSocket服务器端与客户端交互

    千次阅读 2018-01-10 11:37:06
    webSocket服务器端怎么确定客户端接收到服务器端发送的消息,即消息可靠性:   而解决方案,就是让服务器和客户端能够发送 Ping/Pong Frame(RFC 6455 - The WebSocket Protocol)。这种 Frame 是一种...
  • 网上看到说Axis2服务器端与客户端传递参数只支持数组和对象,但是想借助list
  • 前言:TCP服务器端与客户端之间的交互过程如下: 1、服务器程序创建一个ServerSocket(服务器端套接字),并且调用ServerSocket里面的accept()方法来等待客户机的连接 2、客户端程序创建一个Socket(这个套接字...
  • 服务器端与客户端知识总结

    千次阅读 2018-07-15 23:48:01
    二、疑问以及理解 1、客户端与服务器是怎样进行通信的? 1)通信首先需要进行通信的实体 2)然后是通信的媒介 例如电缆或者光缆,也可能是介于某个频谱范围内看不见的无线电波 3)最关键的是通信协议(http和...
  • C#服务器端与客户端通信(客户端)

    千次阅读 2017-06-11 18:16:39
    客户端登陆界面 先定义三个窗口级变量(全局变量) private TcpClient client;  private NetworkStream stream;...//ip地址端口号要与服务器端在监听的一样  IPAddress myip = IPAddress.Pars
  • 实例02 客户端/服务器的交互 ...创建服务器端项目Server,在Main方法中创建TCP连接对象;然后监听客户端接入,并读取接入的客户端IP地址和传入的消息;最后向接入的客户端发送一条信息。代码如下: 01 name
  • 在上一讲中我们讲到了服务器端与客户端的双向通信的例子,显然这种双向通信不是非常好,因为服务端与客户端建立连接之后,服务端一定要等待客户端的输入然后自己再返回一个输出,这在实际的开发过程显然是没有任何...
  • 根据情况不同,客户端做的事情都有不同。服务器至少要做验证。相对于网络游戏来说,数据传输量在一定程度上...具体来说,理想上的网游,个人倾向于所有逻辑处理全放服务器端,而客户端就像个媒体播放器。这是因为如...
  • Java中服务器端与客户端程序设计

    千次阅读 2017-03-08 20:45:43
    1. 服务器端程序设计 在服务器端,利用ServerSocket类的构造函数ServerSocket(int port)创建一个ServerSocket类的对象,port参数传递端口,这个端口就是服务器监听连接请求的端口,如果在这时出现错误将抛出...
  • 服务器端配置 安装软件 yum -y install targetcli 新建块存储 fdisk /dev/sdb 新建/dev/sdb1 进入targetcli界面 &gt; /backstores/block create disk01 /dev/sdb1 #建立块存储disk01 &gt; /iscsi ...
  • 转自:http://www.lesun.org/html/2002-08/1199.htm关于vbscript 与 javascript如何传递变量(包括服务器端与客户端)关键词:VBScript, ASP, JavaScript关于vbscript 与 javascript如何传递变量(包括服务器端与...
  • androidpn是基于XMPP协议的用于向Android客户端推送文本信息的一套开源的工具。它帮我们做了那些维护Socket长连接等等的事情。  在真正把它使用在我们的项目中之前,我们先...第二步,启动服务器端与客户端,通过We
  • 可以通过apache的官网,查找svn下载的网站 ...服务器端  http://www.visualsvn.com/server/download/   客户端  可以去SVN中文网下载 : http://www.svn8.com/  具体地址:http://www.svn8
  • VNC服务器端与客户端配置

    万次阅读 2013-07-14 10:13:29
    服务器端 ubuntu 1:在VNC官网下载安装包 VNC for linux:VNC-5.0.5-Linux-x86-ANY.tar.gz VNC for Windows:VNC-5.0.5-Windows.exe 2,安装VNC server 在ubuntu环境下执行命令: hadoop@...
  • 如果是客户端分页(client),可以通过参数 exportDataType: “all”, // (basic’, ‘all’, ‘selected’.)导出全部数据 如果分页方式是 ***sidePagination: “server”***, 服务端分页,那么导出的数据始终是当前页 ...
  • TCP服务器端 import socket def client_exec(client): pass def main(): """tcp服务器""" # 1.创建一个tcp服务器端 # 1.1初始化一个socket tcp_server = socket.socket...
  • 服务器端: 引入相应的包:json-lib-2.2-jdk15.jar Action:  public String findAll() throws IOException{ List news = newsService.findAll(); //把java 对象列表转换为json对象数组,并转为字符串 JSONArray ...
  • 服务器端socket。tcp创建服务器,使用的编译软件是vs//创建socketsocket tcpServer = new Socket(AddressFamily.InterNetwork,SocketType.stream,ProtocolType.Tcp);//AddressFamily.InterNetwork代表地址类型,...
  • 服务器端的界面上有设置了一个按钮,单击后能导出当前数据库的内容,所以当服务器收到客户端的这条消息后,服务器上导出的数据库中陈杰的状态更改为下线了。 2.客户端发送消息 陈杰,cj 给服务器 .验证通过,服务器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,866
精华内容 11,146
关键字:

服务器端与客户端