class socketClient
{
private:
SOCKET ConnectSocket;
int numBlock;
public:
socketClient()
{
WSADATA wsaData;
numBlock = countObj;
++countObj;
int iResult;
// Initialize Winsock
iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if (iResult != 0)
{
ssPrintf("WSAStartup failed: %d\n", iResult);
//return 1;
}
// Create a SOCKET for connecting to server
ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (ConnectSocket == INVALID_SOCKET)
{
ssPrintf("Error at socket(): %ld\n", WSAGetLastError());
//freeaddrinfo(result);
WSACleanup();
//return 1;
}
}
void sConnect(char* myHost, int myPort)
{
int iResult;
char port[5];
struct addrinfo *result = NULL,
*ptr = NULL,
hints;
ZeroMemory(&hints, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
_itoa_s(myPort,port,5,10);
iResult = getaddrinfo(myHost, porgt, &hints, &result);
if (iResult != 0)
{
ssPrintf("getaddrinfo failed: %d\n", iResult);
WSACleanup();
//return 1;
}
// Connect to server.
iResult = connect(ConnectSocket, result->ai_addr, (int)result->ai_addrlen);
if (iResult == SOCKET_ERROR)
{
closesocket(ConnectSocket);
ConnectSocket = INVALID_SOCKET;
}
}
~socketClient()
{
int iResult;
--countObj;
iResult = shutdown(ConnectSocket, SD_SEND);
if (iResult == SOCKET_ERROR)
{
printf("shutdown failed: %d\n", WSAGetLastError());
closesocket(ConnectSocket);
WSACleanup();
//return 1;
}
closesocket(ConnectSocket);
WSACleanup();
}
int getNumBlock()
{
return numBlock;
}
int sWrite(std::string str)
{
int iResult;
// Send an string
iResult = send(ConnectSocket, str.c_str(), str.size(), 256);
if (iResult == SOCKET_ERROR)
{
ssPrintf("send failed: %d\n", WSAGetLastError());
closesocket(ConnectSocket);
WSACleanup();
//return 1;
}
return iResult; //pocet odeslanych bytu
}
};
我嘗試發送字符串到客戶端的模式,但在運行模式,同時,我得到的錯誤是:發送失敗,錯誤10093和關機失敗,錯誤10093
- 發送失敗10093和
- 關機失敗10093.
請讓我知道我可以在此代碼中更改哪些內容。
這不是MATLAB語言。我正在移除標籤。我還強烈建議你閱讀[如何問](http://stackoverflow.com/help/how-to-ask)頁面,並相應地編輯你的問題,如果你想更好的機會得到答案。 – Hoki
錯誤** 100093 **:表示「尚未成功執行WSAStartup」。你可以發佈[MCVE]嗎? – purplepsycho
您是否考慮查找Winsock錯誤10093的含義? – EJP