SOCKET通过Win7上的C ++与英语操作系统语言之外的通信

时间:2013-07-22 06:32:40

标签: c++ sockets communication

我有一个项目,我通过套接字与服务器通信并且运行很长时间。(源代码如下......)但是在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();

1 个答案:

答案 0 :(得分:2)

它不是套接字,它的数据,使用utf-8编码数据作为字符串流。