Browse Source

Change dead links to Civetweb sourceforge page

bel 10 years ago
parent
commit
90fc294777

+ 2 - 2
examples/docroot/index.html

@@ -2,7 +2,7 @@
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" dir="ltr"> 
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" dir="ltr"> 
   <!-- This file is part of the  Civetweb project,
   <!-- This file is part of the  Civetweb project,
-    http://code.google.com/p/civetweb -->
+    http://sourceforge.net/projects/civetweb/ -->
   <head>
   <head>
     <title>Civetweb chat server</title>
     <title>Civetweb chat server</title>
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
@@ -16,7 +16,7 @@
     <div id="logo"></div>
     <div id="logo"></div>
     <div class="rounded infobox help-message" id="motd">
     <div class="rounded infobox help-message" id="motd">
       Chat room implemented using
       Chat room implemented using
-      <a href="http://code.google.com/p/civetweb" target="_blank">Civetweb</a>
+      <a href="http://sourceforge.net/projects/civetweb/" target="_blank">Civetweb</a>
       embeddable web server.
       embeddable web server.
       This application was written for educational purposes demonstrating
       This application was written for educational purposes demonstrating
       how web interface could be decoupled from the business logic. Not a
       how web interface could be decoupled from the business logic. Not a

+ 1 - 1
examples/docroot/login.html

@@ -2,7 +2,7 @@
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" dir="ltr"> 
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" dir="ltr"> 
   <!-- This file is part of the  Civetweb project,
   <!-- This file is part of the  Civetweb project,
-    http://code.google.com/p/civetweb -->
+    http://sourceforge.net/projects/civetweb/ -->
   <head>
   <head>
     <title>Civetweb chat: login</title>
     <title>Civetweb chat: login</title>
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

+ 2 - 1
examples/docroot/main.js

@@ -1,4 +1,5 @@
-// This file is part of Civetweb project, http://code.google.com/p/civetweb
+// This file is part of Civetweb project,
+// http://sourceforge.net/projects/civetweb/
 
 
 var chat = {
 var chat = {
   // Backend URL, string.
   // Backend URL, string.

+ 1 - 1
test/page.lp

@@ -5,7 +5,7 @@ Content-Type: text/html
 
 
 
 
 <p>This is another example of a Lua server page, served by
 <p>This is another example of a Lua server page, served by
-<a href="http://code.google.com/p/civetweb">Civetweb web server</a>.
+<a href="http://sourceforge.net/projects/civetweb/">Civetweb web server</a>.
 </p><p>
 </p><p>
 The following features are available:
 The following features are available:
 <ul>
 <ul>

+ 1 - 1
test/page.lua

@@ -3,7 +3,7 @@ mg.write("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n")
 mg.write([[
 mg.write([[
 <html><body>
 <html><body>
 <p>This is another example of a Lua script, creating a web page served by the
 <p>This is another example of a Lua script, creating a web page served by the
-<a href="http://code.google.com/p/civetweb">Civetweb web server</a>.
+<a href="http://sourceforge.net/projects/civetweb/">Civetweb web server</a>.
 </p><p>
 </p><p>
 The following features are available:
 The following features are available:
 <ul>
 <ul>

+ 1 - 1
test/page2.lp

@@ -4,7 +4,7 @@
 <html><body>
 <html><body>
 
 
 <p>This is another example of a Lua server page, served by
 <p>This is another example of a Lua server page, served by
-<a href="http://code.google.com/p/civetweb">Civetweb web server</a>.
+<a href="http://sourceforge.net/projects/civetweb/">Civetweb web server</a>.
 </p><p>
 </p><p>
 The following features are available:
 The following features are available:
 <ul>
 <ul>

+ 1 - 1
test/page2.lua

@@ -4,7 +4,7 @@ mg.write("\r\n")
 mg.write([[<html><body>
 mg.write([[<html><body>
 
 
 <p>This is another example of a Lua server page, served by
 <p>This is another example of a Lua server page, served by
-<a href="http://code.google.com/p/civetweb">Civetweb web server</a>.
+<a href="http://sourceforge.net/projects/civetweb/">Civetweb web server</a>.
 </p><p>
 </p><p>
 The following features are available:
 The following features are available:
 <ul>
 <ul>

+ 1 - 1
test/page_keep_alive.lua

@@ -5,7 +5,7 @@ if canKeepAlive then
     -- Create the entire response in a string variable first. Content-Length will be set to the length of this string.
     -- Create the entire response in a string variable first. Content-Length will be set to the length of this string.
     reply = [[
     reply = [[
         <html><body>
         <html><body>
-        <p>This is a Lua script supporting html keep-alive with the <a href="http://code.google.com/p/civetweb">Civetweb web server</a>.</p>
+        <p>This is a Lua script supporting html keep-alive with the <a href="http://sourceforge.net/projects/civetweb/">Civetweb web server</a>.</p>
         <p>It works by setting the Content-Length header field properly.
         <p>It works by setting the Content-Length header field properly.
         </body></html>
         </body></html>
     ]]
     ]]

+ 151 - 0
test/testclient.c

@@ -0,0 +1,151 @@
+#include <stdio.h>
+#include <time.h>
+
+#if defined(_WIN32) || defined(WIN32) 
+#include <Windows.h>
+void INIT(void) {WSADATA wsaData; WSAStartup(MAKEWORD(2,2), &wsaData);}
+#else
+#define INIT()
+#include <unistd.h>
+#include <netdb.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#endif
+
+int connect_to_server(const struct sockaddr_in * serv_addr)
+{
+    int sockfd;
+
+    /* Create a socket */
+    sockfd = socket(AF_INET, SOCK_STREAM, 0);
+    if (sockfd < 0) {
+        perror("ERROR opening socket");
+        return -1;
+    }
+
+    /* Connect to the server */
+    if (connect(sockfd, (const sockaddr *)serv_addr, sizeof(*serv_addr)) < 0) {
+         perror("ERROR connecting");
+         close(sockfd);
+         return -2;
+    }
+
+    return sockfd;
+}
+
+int send_to_server(int conn, const char * request)
+{
+    int req_len = strlen(request);
+    int n;
+
+    n = write(conn, request, req_len);
+    if (n < 0) {
+         perror("ERROR writing to socket");
+         return 0;
+    }
+
+    return (n==req_len);
+}
+
+int read_from_server(int conn)
+{
+    char rbuffer[1024];
+    int n;
+    long ret;
+
+    n = read(conn, rbuffer, sizeof(rbuffer));
+    if (n < 0) {
+         perror("ERROR reading from socket");
+         return 0;
+    }
+
+    if (strncmp("HTTP/1.", rbuffer, 7)) {
+         perror("ERROR not a HTTP response");
+         return 0;
+    }
+
+    ret = atol(rbuffer + 9);
+
+    return ret;
+}
+
+
+int main(int argc, char *argv[])
+{
+    long portno;
+    int i, con_count=1;
+    time_t t1,t2,t3,t4;
+    char wbuffer[256];
+    int connlist[1024*65];
+    int result[1024*65];
+    struct hostent *server;
+    struct sockaddr_in serv_addr;
+
+    INIT();
+
+    if (argc != 4) {
+        fprintf(stderr,"Usage:\n\t%s hostname port clients\n\n", argv[0]);
+        exit(0);
+    }
+
+    con_count = atol(argv[3]);
+    if (con_count<1) con_count=1;
+    if (con_count>1024*65) con_count=1024*65;
+
+    portno = atol(argv[2]);
+    if (portno<1l || portno>0xFFFFl) {
+        fprintf(stderr, "ERROR, invalid port\n");
+        exit(0);
+    }
+
+    server = gethostbyname(argv[1]);
+    if (server == NULL) {
+        fprintf(stderr, "ERROR, no such host\n");
+        exit(0);
+    }
+
+    memset(&serv_addr, 0, sizeof(serv_addr));
+    serv_addr.sin_family = AF_INET;
+    memcpy(server->h_addr, &serv_addr.sin_addr.s_addr, server->h_length);
+    serv_addr.sin_port = htons((short)portno);
+
+    sprintf(wbuffer, "GET / HTTP/1.0\r\n\r\n");
+
+    t1 = time(0);
+    for (i=0;i<con_count;i++) {
+        result[i] = connlist[i] = connect_to_server(&serv_addr);
+    }
+    t2 = time(0);
+    for (i=0;i<con_count;i++) {
+        if (result[i]>=0) {
+            result[i] = send_to_server(connlist[i], wbuffer);
+        }
+    }
+    t3 = time(0);
+    for (i=0;i<con_count;i++) {
+        if (result[i]>=0) {
+            result[i] = read_from_server(connlist[i]);
+        }
+    }
+    t4 = time(0);
+
+    printf("\n");
+    printf("conn:  %.0lf\n", difftime(t2,t1));
+    printf("write: %.0lf\n", difftime(t3,t2));
+    printf("read:  %.0lf\n", difftime(t4,t3));
+
+    for (i=-10;i<1000;i++) {
+        int j,cnt=0;
+        for(j=0;j<con_count;j++) {
+            if (result[j]==i) cnt++;
+        }
+        if (cnt>0) {
+            printf("%5i\t%7u\n", i, cnt);
+        }
+    }
+
+    return 0;
+}
+
+