ithewei 4 年 前
コミット
989cdd8ada
4 ファイル変更35 行追加7 行削除
  1. 18 1
      README-CN.md
  2. 1 1
      base/hsocket.c
  3. 9 3
      examples/curl.cpp
  4. 7 2
      examples/websocket_client_test.cpp

+ 18 - 1
README-CN.md

@@ -450,8 +450,25 @@ ab -c 100 -n 100000 http://127.0.0.1:8080/
 
 ## 📚 中文资料
 
-- **libhv 教程**: <https://hewei.blog.csdn.net/article/details/113733758>
 - **libhv QQ群**: `739352073`,欢迎加群交流
+- **libhv 教程**: <https://hewei.blog.csdn.net/article/details/113733758>
+- [libhv教程01--介绍与体验](https://hewei.blog.csdn.net/article/details/113702536)
+- [libhv教程02--编译与安装](https://hewei.blog.csdn.net/article/details/113704737)
+- [libhv教程03--链库与使用](https://hewei.blog.csdn.net/article/details/113706378)
+- [libhv教程04--编写一个完整的命令行程序](https://hewei.blog.csdn.net/article/details/113719503)
+- [libhv教程05--事件循环以及定时器的简单使用](https://hewei.blog.csdn.net/article/details/113724474)
+- [libhv教程06--创建一个简单的TCP服务端](https://hewei.blog.csdn.net/article/details/113737580)
+- [libhv教程07--创建一个简单的TCP客户端](https://hewei.blog.csdn.net/article/details/113738900)
+- [libhv教程08--创建一个简单的UDP服务端](https://hewei.blog.csdn.net/article/details/113871498)
+- [libhv教程09--创建一个简单的UDP客户端](https://hewei.blog.csdn.net/article/details/113871724)
+- [libhv教程10--创建一个简单的HTTP服务端](https://hewei.blog.csdn.net/article/details/113982999)
+- [libhv教程11--创建一个简单的HTTP客户端](https://hewei.blog.csdn.net/article/details/113984302)
+- [libhv教程12--创建一个简单的WebSocket服务端](https://hewei.blog.csdn.net/article/details/113985321)
+- [libhv教程13--创建一个简单的WebSocket客户端](https://hewei.blog.csdn.net/article/details/113985895)
+- [libhv教程14--200行实现一个纯C版jsonrpc框架](https://hewei.blog.csdn.net/article/details/119920540)
+- [libhv教程15--200行实现一个C++版protorpc框架](https://hewei.blog.csdn.net/article/details/119966701)
+- [libhv教程16--多线程/多进程服务端编程](https://hewei.blog.csdn.net/article/details/120366024)
+- [libhv教程17--Qt中使用libhv](https://hewei.blog.csdn.net/article/details/120699890)
 
 ## 💎 用户案例
 

+ 1 - 1
base/hsocket.c

@@ -207,7 +207,7 @@ static int sockaddr_connect(sockaddr_u* peeraddr, int nonblock) {
 #else
     if (ret < 0 && socket_errno() != EINPROGRESS) {
 #endif
-        perror("connect");
+        // perror("connect");
         closesocket(connfd);
         return socket_errno_negative();
     }

+ 9 - 3
examples/curl.cpp

@@ -224,6 +224,12 @@ int main(int argc, char* argv[]) {
     }
     HttpResponse res;
     /*
+    res.head_cb = [](const http_headers& headers){
+        for (auto& header : headers) {
+            printf("%s: %s\r\n", header.first.c_str(), header.second.c_str());
+        }
+        printf("\r\n");
+    };
     res.body_cb = [](const char* data, size_t size){
         printf("%.*s", (int)size, data);
     };
@@ -231,12 +237,12 @@ int main(int argc, char* argv[]) {
     res.chunked_cb = [](const char* data, size_t size){
         printf("%.*s", (int)size, data);
     };
-    http_client_t* hc = http_client_new();
+    http_client_t* cli = http_client_new();
 send:
     if (verbose) {
         printf("%s\n", req.Dump(true,true).c_str());
     }
-    ret = http_client_send(hc, &req, &res);
+    ret = http_client_send(cli, &req, &res);
     if (ret != 0) {
         printf("* Failed:%s:%d\n", http_client_strerror(ret), ret);
     } else {
@@ -256,6 +262,6 @@ send:
 #endif
         goto send;
     }
-    http_client_del(hc);
+    http_client_del(cli);
     return ret;
 }

+ 7 - 2
examples/websocket_client_test.cpp

@@ -22,7 +22,6 @@ int main(int argc, char** argv) {
     WebSocketClient ws;
     ws.onopen = [&ws]() {
         printf("onopen\n");
-        ws.send("hello");
     };
     ws.onclose = []() {
         printf("onclose\n");
@@ -40,6 +39,12 @@ int main(int argc, char** argv) {
 
     ws.open(url);
 
-    while (1) hv_delay(1000);
+    std::string str;
+    while (std::getline(std::cin, str)) {
+        if (ws.isConnected()) {
+            ws.send(str);
+        }
+    }
+
     return 0;
 }