【发布时间】:2015-06-25 08:29:35
【问题描述】:
我想创建一个回复我的套接字的服务器。 我有这样的代码:
#define DEFAULT_BUFLEN 512
/*...*/
int iResult;
int iSendResult;
char recvbuf[DEFAULT_BUFLEN];
int recvbuflen = DEFAULT_BUFLEN;
/*...*/
iResult = recv(ClientSocket, recvbuf, recvbuflen, 0);
if (recvbuf == "hello"){
iSendResult = send(ClientSocket, "Hi Client", sizeof("Hi Client"), 0);
}else {printf("[ERROR]Unexpected Socket.\n"); }
现在,它不起作用。我现在不知道为什么。我尝试在网上搜索一些东西(结果很差)。 我怎样才能让它工作?我愿意更改所有代码。
【问题讨论】:
-
if (recvbuf == "hello")不太可能起作用。另外recvbuf应该是一个char数组,那么你可以使用strcmp("hello",recvbuf ) == 0作为条件。 -
在发送时使用
recv返回的值在几乎所有情况下都不会像您希望的那样工作。您应该检查recv返回的值是否有错误。
标签: c++ windows sockets server reply