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