0

私は、ソケットを介してサーバーと通信し、長期間実行しているプロジェクトを持っています (以下のソース コード... ) a particular servelet doesn't exist。接続が作成され、メッセージが送信されますが、エラーとしてメッセージが返されます。

今、私はwinsock2.hwithを含めて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();
4

1 に答える 1

2

ソケットではなく、データであり、utf-8 でエンコードされたデータを char ストリームとして使用します。

于 2013-07-22T07:14:40.533 に答える