wangzhengquan
2021-02-03 62ccddbe4abfea9883737d79772d4e8d1084f6b5
update
1个文件已添加
3个文件已修改
65 ■■■■ 已修改文件
src/socket/shm_socket.cpp 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test_net_socket/CMakeLists.txt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test_net_socket/test_net_mod_socket.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test_net_socket/test_recvandsend.cpp 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/socket/shm_socket.cpp
@@ -262,10 +262,9 @@
  if (rv != 0) {
    if(rv == ETIMEDOUT)
      return EBUS_TIMEOUT;
    else {
      logger->debug("%d shm_recvfrom failed %s", shm_socket_get_key(sockt), bus_strerror(rv));
      return rv;
    }
    logger->debug("%d shm_recvfrom failed %s", shm_socket_get_key(sockt), bus_strerror(rv));
    return rv;
  }
   
  if(recvbuf != NULL) {
test_net_socket/CMakeLists.txt
@@ -11,8 +11,6 @@
target_link_libraries(test_net_mod_socket PRIVATE shm_queue  ${EXTRA_LIBS} )
add_executable(test_bus_stop test_bus_stop.cpp)
target_link_libraries(test_bus_stop PRIVATE shm_queue  ${EXTRA_LIBS} )
@@ -26,6 +24,9 @@
                            )
add_executable(test_recvandsend test_recvandsend.cpp)
target_link_libraries(test_recvandsend PRIVATE shm_queue  ${EXTRA_LIBS} )
target_include_directories(test_net_mod_socket PRIVATE
                            "${PROJECT_BINARY_DIR}"
test_net_socket/test_net_mod_socket.cpp
@@ -506,10 +506,6 @@
}
int main(int argc, char *argv[]) {
    shm_mm_wrapper_init(512);
 
test_net_socket/test_recvandsend.cpp
New file
@@ -0,0 +1,49 @@
#include <assert.h>
#include "net_mod_server_socket_wrapper.h"
#include "net_mod_socket_wrapper.h"
#include "bus_server_socket_wrapper.h"
#include "shm_mm_wrapper.h"
#include "usg_common.h"
#include <getopt.h>
#include "logger_factory.h"
void sendback(void ** buf, int *size){
      char sendbuf[512];
    printf( "server: RECEIVED REQUEST FROM \n ");
    sprintf(sendbuf, "RECEIVED REQUEST \n");
    // buf 和 size是返回值
    *buf = sendbuf;
    *size = strlen(sendbuf) + 1;
    return;
}
void start_reply(int mkey) {
  printf("start reply\n");
  void *ser = net_mod_socket_open();
  net_mod_socket_bind(ser, mkey);
  int recvsize;
  void *recvbuf;
  int rv;
  int key;
  while(true) {
    rv = net_mod_socket_recvandsend_timeout(ser, &recvbuf, &recvsize, &key, sendback, 2, 2000000 );
    if(rv == 0)
        free(recvbuf);
  }
  // while ( (rv = net_mod_socket_recvfrom(ser, &recvbuf, &size, &key) ) == 0) {
  //  // printf( "server: RECEIVED REQUEST FROM  %d NAME %s\n", key, recvbuf);
  //   sprintf(sendbuf, "%d RECEIVED %s", net_mod_socket_get_key(ser), (char *)recvbuf);
  //   net_mod_socket_sendto(ser, sendbuf, strlen(sendbuf) + 1, key);
  //   free(recvbuf);
  // }
}
int main() {
    shm_mm_wrapper_init(512);
    start_reply(100);
}