SOCKET связь через C ++ на Win7 с другими языками ОС, кроме английского

У меня есть проект, где я общаюсь с сервером через сокет и выполняется в течение длительного периода времени (Исходный код ниже …) Однако на 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

Решение

это не сокет, это данные, использующие данные в кодировке utf-8 в качестве потока символов.

2

Другие решения

Других решений пока нет …