有一个函数将数据发送到服务器:
int send(
_In_ SOCKET s,
_In_ const char *buf,
_In_ int len,
_In_ int flags
);
Run Code Online (Sandbox Code Playgroud)
提供长度在我看来有点奇怪.我需要编写一个函数,向服务器发送一行并包装这一行,这样我们就不必明确地提供长度.我是Java开发人员,在Java中我们只能调用String::length()方法,但现在我们不是Java.我怎么能这样做,除非提供长度作为模板参数?例如:
void sendLine(SOCKET s, const char *buf)
{
}
Run Code Online (Sandbox Code Playgroud)
是否可以实现这样的功能?
使用std字符串:
void sendLine(SOCKET s, const std::string& buf) {
send (s, buf.c_str(), buf.size()+1, 0); //+1 will also transmit terminating \0.
}
Run Code Online (Sandbox Code Playgroud)
旁注:您的包装函数忽略返回值,不带任何标志.