web服务器与客户机通信5个步骤

26分钟前阅读2回复0
花花
花花
  • 管理员
  • 注册排名3
  • 经验值509785
  • 级别管理员
  • 主题101957
  • 回复0
楼主

1. 通过EXE程序间隔一段时间爬取Web某个URL获取Web上的信息,并入库。

import requests
import time
def fetch_and_save(url):
    try:
        response = requests.get(url)
        response.raise_for_status()  # 检查请求是否成功
        data = response.json()  # 假设返回的是JSON格式的数据
        # 将数据保存到数据库中
        save_to_database(data)
        print(f"Successfully fetched and saved {url}")
    except requests.RequestException as e:
        print(f"Error fetching {url}: {e}")
def save_to_database(data):
    # 这里需要实现将数据保存到数据库中的逻辑
    pass
示例URL
target_url = "https://example.com"
interval = 60  # 每隔60秒执行一次
while True:
    fetch_and_save(target_url)
    time.sleep(interval)

2. 使用AJAX方式,间隔一段时间获取Web上的信息。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AJAX Web Communication</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <div id="result"></div>
    <script>
        function fetchData() {
            $.ajax({
                url: "http://localhost:8080/data",
                method: "GET",
                success: function(response) {
                    $("#result").text(JSON.stringify(response));
                },
                error: function(xhr, status, error) {
                    console.error("Error fetching data:", error);
                }
            });
        }
        setInterval(fetchData, 60000); // 每隔60秒执行一次
    </script>
</body>
</html>

3. 通过精通的语言写一个EXE程序,做Socket监听,端口80,运行在服务器上。

using System;
using System.Net.Sockets;
using System.Text;
class WebServer
{
    static void Main(string[] args)
    {
        TcpListener listener = new TcpListener(IPAddress.Any, 80);
        listener.Start();
        Console.WriteLine("Web Server is running on port 80...");
        while (true)
        {
            TcpClient client = listener.AcceptTcpClient();
            NetworkStream stream = client.GetStream();
            byte[] buffer = new byte[1024];
            int bytesRead = stream.Read(buffer, 0, buffer.Length);
            string request = Encoding.ASCII.GetString(buffer, 0, bytesRead).Trim();
            Console.WriteLine($"Received request: {request}");
            // 处理请求并发送响应
            string response = "HTTP/1.1 200 OK
Content-Type: text/html
<h1>Hello, World!</h1>";
            byte[] responseData = Encoding.ASCII.GetBytes(response);
            stream.Write(responseData, 0, responseData.Length);
            stream.Close();
            client.Close();
        }
    }
}

三次握手协议:用于建立和维持TCP连接。

未连接队列:在连接建立过程中,服务器维护的未连接队列。

Backlog参数:设置未连接队列的最大容量。

半连接存活时间:定义半连接队列中条目的存活时间。

Web应用程序和服务器端EXE程序的通信

- 通过EXE程序间隔一段时间爬取Web某个URL获取Web上的信息,并入库。

- 使用AJAX方式,间隔一段时间获取Web上的信息。

- 通过精通的语言写一个EXE程序,做Socket监听,端口80,运行在服务器上。

通过这种方式,我们可以实现不同组件之间的高效通信,提升系统的整体性能和灵活性。

0
回帖

web服务器与客户机通信5个步骤 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息