nanomsg接口函数以及用法

nanomsg函数官网

函数的相关解释均翻译自官网,有不合理的地方欢迎广大网友批评指正!

包含以下函数

int nn_socket (int domain, int protocol);
int nn_close (int s);
int nn_setsockopt (int s, int level, int option, const void *optval, size_t optvallen);
int nn_getsockopt (int s, int level, int option, void *optval, size_t *optvallen);
int nn_bind (int s, const char *addr);
int nn_connect (int s, const char *addr);
int nn_shutdown (int s, int how);
int nn_send (int s, const void *buf, size_t len, int flags);
int nn_recv (int s, void *buf, size_t len, int flags);
int nn_sendmsg (int s, const struct nn_msghdr *msghdr, int flags);
int nn_recvmsg (int s, struct nn_msghdr *msghdr, int flags);

1、nn_socket 创建一个SP套接字

int nn_socket (int domain, int protocol);
参数 int domain
//SP socket类型
AF_SP//标准全功能 SP 套接字
AF_SP_RAW//比较原始的套接字,一般用上面那个
int protocol
//套接字协议类型
详细信息见 protocol表
返回值 成功返回文件描述符,失败返回-1,并且将errno置为错误类型的值
错误值 EAFNOSUPPORT 不支持指定的地址系列
EINVAL 未知协议
EMFILE 达到打开的SP套接字总数限制或文件描述符的OS限制
ETERM 数据库终止了
用例 int s = nn_socket (AF_SP, NN_PUB);
功能描述 使用指定的域和协议创建一个 sp 套接字 返回新创建的套接字的文件描述符

2、int nn_close (int s);关闭一个SP套接字

3、nn_setsockopt 设置套接字选项

int nn_setsockopt (int s, int level, int option, const void *optval, size_t optvallen);
参数 int s
//SP套接字
----
int level
//选项所在的协议级别
详细信息见 level表
int option
//level的操作参数
option选项见下option表
const void *optval
//操作字符
----
size_t optvallen
//操作字符长度
----
返回值 成功返回0,失败返回-1,并且将errno置为错误类型的值
错误值 ENOPROTOOPT option对level的指示无效
EINVAL 未知协议
EBADF 所提供的socket无效
ETERM 数据库终止了
用例 int linger = 1000;
nn_setsockopt (s, NN_SOL_SOCKET, NN_LINGER, &linger, sizeof (linger));
nn_setsockopt (s, NN_SUB, NN_SUB_SUBSCRIBE, "ABC", 3);
功能描述 设置选项的值
level参数列举
NN_SOL_SOCKET 通用套接字级别选项
NN_SUB 特定的套接字类型的选项,用套接字作为level参数
NN_TCP 对于特定于传输的选项,使用传输的id作为leave参数
NN_SOL_SOCKET的参数列举
NN_SNDBUF 发送缓冲区的大小,单位为字节。为了防止对大于缓冲区的消息进行阻塞,除了发送缓冲区中的数据之外,还可以缓冲正好一个消息。这个选项的类型是 int。默认值是128kb
NN_RCVBUF 接收缓冲区的大小,单位为字节。为了防止对大于缓冲区的消息进行阻塞,除了发送缓冲区中的数据之外,还可以缓冲正好一个消息。这个选项的类型是 int。默认值是128kb
NN_RCVMAXSIZE 可接收的最大消息大小(以字节为单位)。负值意味着接收的大小仅受可用可寻址内存的限制。这个选项的类型是 int。默认值是1024kb。
NN_SNDTIMEO 套接字上发送操作的超时,以毫秒为单位。如果无法在指定的超时内发送消息,则返回原始输出错误。负值表示无限超时。选项的类型是 int。默认值是 -1。
NN_RCVTIMEO 套接字上 recv 操作的超时,以毫秒为单位。如果在指定的超时内无法接收消息,则返回原始输出错误。负值表示无限超时。选项的类型是 int。默认值是 -1。
NN_RECONNECT_IVL 对于基于连接的传输协议(如 tcp) ,此选项指定在尝试重新建立连接之前,当连接中断时等待的时间(毫秒)。请注意,实际的重新连接间隔可能在一定程度上是随机的,以防止严重的重新连接风暴。选项的类型是 int。默认值为100(0.1秒)。
NN_RECONNECT_IVL_MAX 此选项仅用于NN_RECONNECT_IVL选项。它指定了最大重新连接间隔。每次重新连接尝试时,前一个间隔会加倍,直到到达NN_RECONNECT_IVL_MAX。值为零意味着没有执行截断二进制指数避退算法重新连接,重新连接间隔只基于NN_RECONNECT_IVL。如果重新连接最大值小于NN_RECONNECT_IVL_MAX,它将被忽略。选项的类型是 int。默认值是0。
NN_SNDPRIO 为随后添加到套接字的端点设置出站优先级。此选项对向所有对等点发送消息的套接字类型没有影响。但是,如果套接字类型将每个消息发送到单个对等点(或有限的对等点集) ,具有高优先级的对等点优先于具有低优先级的对等点。选项的类型是 int。最高优先级是1最低优先级是16。默认值是8。
NN_RCVPRIO 设置随后添加到套接字的端点的入站优先级。此选项对无法接收消息的套接字类型没有影响。在接收消息时,从优先级较高的对等点接收消息,然后再从优先级较低的对等点接收消息。选项的类型是 int。最高优先级是1最低优先级是16。默认值是8。
NN_IPV4ONLY 如果设置为1,则只使用 ipv4地址。如果设置为0,则使用 ipv4和 ipv6地址。选项的类型是 int。默认值是1。
NN_SOCKET_NAME 用于错误报告和统计的套接字名称。选项的类型是 string。默认值是“socket.n”,其中 n 是套接字整数。
NN_MAXTTL 设置消息在被删除之前可以通过的最大“跃点”数。每次接收到消息时(例如通过 nn _ device (3)函数)计为单跳。这提供了一种防止无意中发生循环的保护形式。
NN_LINGER 此选项未实现,不应在新代码中使用。如果应用程式需要确保其讯息已传送至远端对端,则应使用确认(在 NN_REQ sockets 上收到回覆时暗示) ,或在调用 nn_close或退出应用程式前插入适当的延迟。

4、int nn_getsockopt (int s, int level, int option, void *optval, size_t *optvallen);获取套接字选项

int nn_getsockopt (int s, int level, int option, void *optval, size_t *optvallen);
参数 int s
//SP套接字
----
int level
//选项所在的协议级别
详细信息见 level表
int option
//level的操作参数
option选项见下option表
const void *optval
//操作字符
----
size_t *optvallen
//操作字符长度
----
返回值 成功返回0,失败返回-1,并且将errno置为错误类型的值
错误值 ENOPROTOOPT option对level的指示无效
EBADF 所提供的socket无效
ETERM 数据库终止了
用例 int linger;
size_t sz = sizeof (linger);
nn_getsockopt (s, NN_SOL_SOCKET, NN_LINGER, &linger, &sz);
功能描述 获取选项的值
NN_SOL_SOCKET的参数列举
NN_DOMAIN 返回传递给 nn_socket()的域常量
NN_PROTOCOL 返回传递给nn_socket()的协议常量。
NN_LINGER 指定在调用nn_close()之后套接字应该尝试发送挂起的出站消息的时间,以毫秒为单位。负值意味着无限徘徊。选项的类型是 int。默认值为1000(1秒)。
NN_SNDBUF 发送缓冲区的大小,单位为字节。为了防止对大于缓冲区的消息进行阻塞,除了发送缓冲区中的数据之外,还可以缓冲正好一个消息。这个选项的类型是 int。默认值是128kb
NN_RCVBUF 接收缓冲区的大小,单位为字节。为了防止对大于缓冲区的消息进行阻塞,除了发送缓冲区中的数据之外,还可以缓冲正好一个消息。这个选项的类型是 int。默认值是128kb
NN_RCVMAXSIZE 可接收的最大消息大小(以字节为单位)。负值意味着接收的大小仅受可用可寻址内存的限制。这个选项的类型是 int。默认值是1024kb。
NN_SNDTIMEO 套接字上发送操作的超时,以毫秒为单位。如果无法在指定的超时内发送消息,则返回原始输出错误。负值表示无限超时。选项的类型是 int。默认值是 -1。
NN_RCVTIMEO 套接字上 recv 操作的超时,以毫秒为单位。如果在指定的超时内无法接收消息,则返回原始输出错误。负值表示无限超时。选项的类型是 int。默认值是 -1。
NN_RECONNECT_IVL 对于基于连接的传输协议(如 tcp) ,此选项指定在尝试重新建立连接之前,当连接中断时等待的时间(毫秒)。请注意,实际的重新连接间隔可能在一定程度上是随机的,以防止严重的重新连接风暴。选项的类型是 int。默认值为100(0.1秒)。
NN_RECONNECT_IVL_MAX 此选项仅用于NN_RECONNECT_IVL选项。它指定了最大重新连接间隔。每次重新连接尝试时,前一个间隔会加倍,直到到达NN_RECONNECT_IVL_MAX。值为零意味着没有执行截断二进制指数避退算法重新连接,重新连接间隔只基于NN_RECONNECT_IVL。如果重新连接最大值小于NN_RECONNECT_IVL_MAX,它将被忽略。选项的类型是 int。默认值是0。
NN_SNDPRIO 为随后添加到套接字的端点设置出站优先级。此选项对向所有对等点发送消息的套接字类型没有影响。但是,如果套接字类型将每个消息发送到单个对等点(或有限的对等点集) ,具有高优先级的对等点优先于具有低优先级的对等点。选项的类型是 int。最高优先级是1最低优先级是16。默认值是8。
NN_RCVPRIO 设置随后添加到套接字的端点的入站优先级。此选项对无法接收消息的套接字类型没有影响。在接收消息时,从优先级较高的对等点接收消息,然后再从优先级较低的对等点接收消息。选项的类型是 int。最高优先级是1最低优先级是16。默认值是8。
NN_IPV4ONLY 如果设置为1,则只使用 ipv4地址。如果设置为0,则使用 ipv4和 ipv6地址。选项的类型是 int。默认值是1。
NN_SNDFD 检索文件描述符,当消息可以发送到套接字时,该文件描述符是可读的。描述符应该只用于轮询,从不读取或写入。选项的类型与平台上的文件描述符的类型相同。也就是说,在 POSIX-complaint 平台上使用 int,在 Windows 上使用 socket。描述符变得无效,一旦套接字关闭,就不应该再使用它。此套接字选项不适用于单向 recv-only 套接字类型。
NN_RCVFD 检索当可以从套接字接收消息时可读的文件描述符。描述符应该只用于轮询,从不读取或写入。选项的类型与平台上的文件描述符的类型相同。也就是说,在 POSIX-complaint 平台上使用 int,在 Windows 上使用 socket。描述符变得无效,一旦套接字关闭,就不应该再使用它。此套接字选项不适用于单向只发送套接字类型。
NN_SOCKET_NAME 用于错误报告和统计的套接字名称。选项的类型是 string。默认值是“socket.n”,其中 n 是套接字整数。
NN_MAXTTL 设置消息在被删除之前可以通过的最大“跃点”数。每次接收到消息时(例如通过 nn _ device (3)函数)计为单跳。这提供了一种防止无意中发生循环的保护形式。

5、nn_bind 添加套接字到本地节点

int nn_bind (int s, const char *addr);
参数 int s
//套接字
----
const char *addr
//套接地址字符串
进程内通讯:inproc://test
tcp通讯:tcp://127.0.0.1:5555
返回值 如果函数成功,则返回正端点 id。如果函数失败,则返回-1,并将 errno 设置为下面定义的值之一。
错误值 EBADF 所提供的socket无效
EMFILE 达到了连接端点的最大数目
EINVAL 未知协议
ENAMETOOLONG 提供的地址字符串太长了
ENOPROTOOPT 请求的传输协议不被支持
EADDRNOTAVAIL 请求的端点不是本地的
ENODEV Address指定一个不存在的接口
EADDRINUSE 请求的本地端点已经在使用中
ETERM 数据库终止了
用例 s = nn_socket (AF_SP, NN_PUB);
eid1 = nn_bind (s, "inproc://test");
eid2 = nn_bind (s, "tcp://127.0.0.1:5560");
功能描述 将本地端点添加到套接字s中,然后其他应用程序可以使用该端点进行连接。

6、nn_connect 向套接字添加远程终结点

int nn_connect (int s, const char *addr);
参数 int s
//套接字
----
const char *addr
//套接地址字符串
进程间通讯:ipc:///tmp/test.ipc
tcp通讯:tcp://127.0.0.1:5555
返回值 如果函数成功,则返回正端点 id。如果函数失败,返回负值,并将 errno 设置为下面定义的值之一,则可以使用端点 id 以后通过 nn_shutdown (3)函数从套接字中删除端点。
错误值 EBADF 所提供的socket无效
EMFILE 达到了连接端点的最大数目
EINVAL 未知协议
ENAMETOOLONG 提供的地址字符串太长了
ENOPROTOOPT 请求的传输协议不被支持
ENODEV Address指定一个不存在的接口
ETERM 数据库终止了
用例 s = nn_socket (AF_SP, NN_PUB);
eid1 = nn_connect (s, "ipc:///tmp/test.ipc");
eid2 = nn_connect (s, "tcp://server001:5560");
功能描述 将一个远程端点添加到套接字 s 中,然后库将尝试连接到指定的远程端点。

7、int nn_shutdown (int s, int how);从套接字中删除端点

int nn_shutdown (int s, int how);
参数 int s
//SP套接字
----
int how nn_connect或者nn_bind返回的值
错误值 EBADF 所提供的socket无效
EINVAL how参数不是正在使用的端点
EINTR 行动被一个信号中断了。端点还没有完全关闭。操作可以通过再次调用 nn_shutdown()重新启动
ETERM 数据库终止了
用例 s = nn_socket (AF_SP, NN_PUB);
eid = nn_bind (s, "inproc://test");
nn_shutdown (s, eid);
功能描述 从套接字s中移除一个端点。参数如何指定要移除的端点的 id,这个端点是在先前调用nn_bind()或nn_connect()时返回的,nn_shutdown()调用将立即返回,如果不是,库将尝试通过 NN_LINGER socket 选项在指定的时间内将任何未完成的出站的消息传递到端点。

8 、int nn_send (int s, const void *buf, size_t len, int flags);发送消息函数

int nn_send (int s, const void *buf, size_t len, int flags);
参数 int s SP套接字
const void *buf 发送的消息
size_t len 发送消息长度
int flags NN_DONTWAIT
//指定操作应以非阻塞模式执行。如果不能立即发送消息,则函数将失败,并再次设置 errno。
返回值 如果函数成功,则返回消息中的字节数。否则,返回-1,并将 errno 设置为下面定义的值之一。
错误值 EFAULT Buf 为 NULL 或者 len 为 nn_msg,消息指针(由 buf 指向)为 NULL
EBADF 所提供的socket无效
ENOTSUP 此套接字类型不支持此操作
EFSM 此时无法在此套接字上执行此操作,因为该套接字处于不适当的状态。在多个状态之间切换的套接字类型可能会出现此错误
EAGAIN 请求非阻塞模式,此时无法发送消息
EINTR 在信息发出之前,信号的传递打断了行动
ETIMEDOUT 每个套接字类型可能定义自己的特定超时。如果命中此类超时,将返回此错误。
ETERM 库终止了
用例 //直接使用数据:
nbytes = nn_send (s, "ABC", 3, 0);
assert (nbytes == 3);
//使用预先分配的消息缓冲区:
void *msg = nn_allocmsg(3, 0);
strncpy(msg, "ABC", 3);
nbytes = nn_send (s, &msg, NN_MSG, 0);
assert (nbytes == 3);
功能描述 该函数将发送一条消息,其中包含由 buf 参数指向的来自 buffer 的数据,消息长度为 len 字节。

9、int nn_recv (int s, void *buf, size_t len, int flags);接收消息

int nn_send (int s, const void *buf, size_t len, int flags);
参数 int s SP套接字
const void *buf 发送的消息
size_t len 发送消息长度
int flags NN_DONTWAIT
//指定操作应以非阻塞模式执行。如果不能立即发送消息,则函数将失败,并再次设置 errno。
返回值 如果函数成功,则返回消息中的字节数。否则,返回-1,并将 errno 设置为下面定义的值之一。
错误值 EBADF 所提供的socket无效
ENOTSUP 此套接字类型不支持此操作
EFSM 此时无法在此套接字上执行此操作,因为该套接字处于不适当的状态。在多个状态之间切换的套接字类型可能会出现此错误
EAGAIN 请求非阻塞模式,此时无法发送消息
EINTR 在信息发出之前,信号的传递打断了行动
ETIMEDOUT 每个套接字类型可能定义自己的特定超时。如果命中此类超时,将返回此错误。
ETERM 库终止了
用例 char buf [100];
nbytes = nn_recv (s, buf, sizeof (buf), 0);
void *buf = NULL;
nbytes = nn_recv (s, &buf, NN_MSG, 0);
if (nbytes < 0) {
  /* handle error */
  ...
}else {
  /* process message */
  ...
  nn_freemsg (buf);
}
功能描述 从套接字 s 接收消息,并将其存储在 buf 参数引用的缓冲区中。任何超过 len 参数指定长度的字节都会被截断。

10、int nn_sendmsg (int s, const struct nn_msghdr *msghdr, int flags); nn_send的替代品

int nn_sendmsg (int s, const struct nn_msghdr *msghdr, int flags);
参数 int s SP套接字
const struct
nn_msghdr *msghdr
结构体内容见下代码片
int flags NN_DONTWAIT
//指定操作应以非阻塞模式执行。如果不能立即发送消息,则函数将失败,并再次设置 errno。
返回值 如果函数成功,则返回消息中的字节数。否则,返回-1,并将 errno 设置为下面定义的值之一。
错误值 EINVAL 有多个分散缓冲区,但其中一个的长度设置为 NN_MSG,或者分散缓冲区大于size_t 的iov_len值之和,或者 msghdr 为 NULL.或者原来分配的消息没有被释放。
EMSGSIZE msghdr->msg_iovlen 没有值,或者原来分配的消息没有被释放。
EFAULT 为预分配消息缓冲区提供的指针或分散缓冲区为空,或长度为0。
EBADF 所提供的socket无效
ENOTSUP 此套接字类型不支持此操作
EFSM 此时无法在此套接字上执行此操作,因为该套接字处于不适当的状态。在多个状态之间切换的套接字类型可能会出现此错误
EAGAIN 请求非阻塞模式,此时无法发送消息
EINTR 在信息发出之前,信号的传递打断了行动
ETIMEDOUT 每个套接字类型可能定义自己的特定超时。如果命中此类超时,将返回此错误。
ETERM 库终止了
用例 见下面代码片段
功能描述 将 msghdr 结构体指定的数据连同其他控制数据一起发送到套接字 s。
//结构体内容
struct nn_msghdr{struct nn_iovec *msg_iov; //指向要发送的消息字符串缓冲区结构体地址int msg_iovlen; //消息缓冲区个数void *msg_control; //指向与正在发送的消息相关联的控制信息的缓冲区size_t msg_controllen; //控制信息的长度
};struct nn_iovec{void *iov_base; //指向发送消息结构体/字符串地址size_t iov_len; //发送消息字符串长度
};//函数使用
//发送多个缓冲数据
struct nn_msghdr hdr;
struct nn_iovec iov [2];iov [0].iov_base = "Hello";
iov [0].iov_len = 5;
iov [1].iov_base = "World";
iov [1].iov_len = 5;
memset (&hdr, 0, sizeof (hdr));
hdr.msg_iov = iov;
hdr.msg_iovlen = 2;
nn_sendmsg (s, &hdr, 0);//发送单个缓冲数据
void *msg;
struct nn_msghdr hdr;
struct nn_iovec iov;msg = nn_allocmsg(12, 0);
strcpy(msg, "Hello World");
iov.iov_base = &msg;
iov.iov_len = NN_MSG;
memset (&hdr, 0, sizeof (hdr));
hdr.msg_iov = &iov;
hdr.msg_iovlen = 1;
nn_sendmsg (s, &hdr, 0);

11、int nn_recvmsg (int s, struct nn_msghdr *msghdr, int flags);nn_recv 的替代品

int nn_recvmsg (int s, struct nn_msghdr *msghdr, int flags);
参数 int s SP套接字
const struct
nn_msghdr *msghdr
结构体内容见同上/td>
int flags NN_DONTWAIT
//指定操作应以非阻塞模式执行。如果不能立即发送消息,则函数将失败,并再次设置 errno。
返回值 如果函数成功,则返回消息中的字节数。否则,返回-1,并将 errno 设置为下面定义的值之一。
错误值 EBADF 所提供的socket无效
ENOTSUP 此套接字类型不支持此操作
EFSM 此时无法在此套接字上执行此操作,因为该套接字处于不适当的状态。在多个状态之间切换的套接字类型可能会出现此错误
EAGAIN 请求非阻塞模式,此时无法发送消息
EINTR 在信息发出之前,信号的传递打断了行动
ETIMEDOUT 每个套接字类型可能定义自己的特定超时。如果命中此类超时,将返回此错误。
ETERM 库终止了
用例 见下面代码片段
功能描述 将 msghdr 结构体指定的数据连同其他控制数据一起发送到套接字 s。
struct nn_msghdr hdr;
struct nn_iovec iov [2];
char buf0 [4];
char buf1 [2];
iov [0].iov_base = buf0;
iov [0].iov_len = sizeof (buf0);
iov [1].iov_base = buf1;
iov [1].iov_len = sizeof (buf1);
memset (&hdr, 0, sizeof (hdr));
hdr.msg_iov = iov;
hdr.msg_iovlen = 2;
nn_recvmsg (s, &hdr, 0);

nanomsg接口函数以及功能列举大全相关推荐

  1. 护照港澳通回乡证多功能证件识别阅读器MEPR100接口函数的定义

    SDK 使用 使用本 SDK,请将以下文件包含到你的工程中: DRPassportAPI.h – 接口函数的定义 如果你想用静态连接,请连接下面文件: DRPassportAPI.lib 运行时,以下 ...

  2. WinCE中串口驱动及接口函数介绍(转载)

    作者:ARM-WinCE 在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图: 串口驱动本身分为MDD层和PDD层.MDD层对上层的Device Manager提供了标准的流设备驱动接口( ...

  3. 【转载】WinCE中串口驱动及接口函数介绍

    转载自:http://blog.csdn.net/nanjianhui/article/details/2627755 在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图: 串口驱动本身分 ...

  4. WinCE中串口驱动及接口函数介绍

    作者:ARM-WinCE 在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图: 串口驱动本身分为MDD层和PDD层.MDD层对上层的Device Manager提供了标准的流设备驱动接口( ...

  5. matlab常用函数与常用指令大全

    matlab常用函数与常用指令大全 matlab常用函数- - 1.特殊变量与常数 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 i ...

  6. 认识 fcntl 接口函数(文件非阻塞设置)

    目录 一.fcntl函数的作用 二.fcntl 函数的声明 1.参数解析 2.返回值解析 三.使用fcntl 将文件描述符设置为非阻塞 1.设置非阻塞模式实现 2.代码测试 一.fcntl函数的作用 ...

  7. 利用ATL创建com组件和如何在程序中使用组件的接口函数和设置接口的属性

    这是一个ATL开发实例的流程: 1.       在atl中插入一个atl实例,然后添加一个类,派生自ccmdtarget. 2.       添加相应的属性或者方法,在这里需要明白一点的是,这个属性 ...

  8. 【嵌入式】Libmodbus源码分析(二)-常用接口函数分析

    00. 目录 文章目录 00. 目录 01. modbus常用接口函数概述 02. modbus辅助接口函数 03. modbus功能接口函数 04. modbus数据处理 05. 附录 01. mo ...

  9. 【转】libpcap实现机制及接口函数

    转自:libpcap实现机制及接口函数 - 简书 1.Libpcap 的工作原理 Libpcap的工作原理可以描述为,当一个数据包到达网卡时,通过网络分接口(即旁路机制)将数据包发给BPF过滤器,匹配 ...

  10. C++ 接口 函数导出_Matlab与C/C++混合编程、Visual C++与Matlab封装库互相调用相关要点...

    [版本说明] Visual Studio 2010 Matlab2014a 64bit Windows7 64bit 以下是我安装的 Matlab2014a 支持的 C++混合编译器的SDK版本(为了 ...

最新文章

  1. 如何在指定文件夹下进入jupyter notebook
  2. 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——实现篇:(八)RTP音视频传输解析层之MPA传输格式...
  3. JAVA个go哪个写web方便_Go语言实现的一个简单Web服务器
  4. boost::sequential_vertex_coloring用法的测试程序
  5. Hibernate 4.2.8,javassist 3.18.1和ClassCastExceptions –注意您的类路径
  6. linux回到桌面的命令符_三 基本的base shell 命令
  7. Android驱动开发第一章
  8. python getopt使用_如何使用getopt.getoptpython中的方法?
  9. 机器视觉运动控制一体机应用例程|U盘视觉定位激光打标解决方案
  10. java调用ip138接口查询ip地址,iP查询接口Javascript代码示例 iP地址查询接口Javascript代码示例 iP138查询网...
  11. 前端监控--vue项目中使用友盟统计监控
  12. Retrofit简单使用(小白都会了)
  13. 【小白】【大学】一名嵌入式软件开发小白的单片机学习历程、心路历程、经验分享
  14. 工厂设备管理远程监控方案
  15. kafka巨坑 启动失败
  16. 《我心归处是敦煌》读后感
  17. Python进阶--网络爬虫基础
  18. Sql Server 数据库 表增加列字段
  19. c语言如何蓝屏,电脑蓝屏c0000218怎么解决 导致蓝屏c0000218的原因有哪些
  20. 谷歌街景原理【翻译】

热门文章

  1. android adb shell chmod,adb shell 修改用户权限 删除App
  2. Excel数据分析学习笔记(三)Excel常用数据分析工具(需要统计学基础)
  3. SIR传染病模型及matlab代码
  4. 刷题——逆波兰表达式
  5. android框架xUtils使用介绍
  6. linux编辑乱码华为光猫,华为光猫修改双模、SN序号、MAC地址方法
  7. 一本通1665【例 3】移棋子游戏
  8. 电脑终端仿真程序(crt中文免费版) 附使用说明
  9. SEGGER调试软件
  10. 很详细的讲解什么以及为什么是卷积(Convolution)!