我有一个项目,我通过套接字与服务器通信并且运行很长时间。(源代码如下......)但是在win 7上,某些机器上的语言为丹麦语/中文它让我觉得像a particular servelet doesn't exist
这样的人。虽然创建了连接并发送了消息,但我收到了消息作为错误。
现在,我想在winsock2.h
中加入Ws2_32.lib
,并希望将MAKEWORD(1,1)
更改为MAKEWORD(2,2)
。对于我从长期运行的项目来看这个变化到目前为止安全吗?
//我在这里列出了基本资料。
#include <winsock.h>
// with winsock32.lb
SOCKET sockRef = NULL;
struct sockaddr_in srvInfo;
struct hostent *netHostForName = NULL;
WORD wVersionRequested = MAKEWORD(1,1);
int nRet = WSAStartup(wVersionRequested, &wsaData);
netHostForName = gethostbyname(serverName);
memcpy((char *)&srvInfo.sin_addr, netHostForName->h_addr,
netHostForName->h_length);
srvInfo.sin_port = htons(portNumber);
srvInfo.sin_family = AF_INET;
sockRef = socket(AF_INET, SOCK_STREAM, 0);
connect(sockRef, (struct sockaddr *)&srvInfo,sizeof(srvInfo));
// Sending messages with
SockWrite(Socket, message, strlen(message), 0);
//Receiving messages with
recv(Socket, szBuffer, sizeof(szBuffer), 0);
CLOSESOCKET(Socket);
WSACleanup();
答案 0 :(得分:2)
它不是套接字,它的数据,使用utf-8编码数据作为字符串流。