#include #include #pragma comment(lib, "wsock32.lib") class TCPIP{ private: SOCKET s; WSADATA wsaData; public : bool TCPConnect(char *server,u_short port){ if(WSAStartup(MAKEWORD(1, 1), &wsaData)!=0) return false; s = socket(PF_INET,SOCK_STREAM,0); if(s==INVALID_SOCKET) return false; LPHOSTENT ipHost = gethostbyname(server); if(ipHost == NULL) return false; SOCKADDR_IN sockadd; memset(&sockadd,0,sizeof(sockadd)); sockadd.sin_family = AF_INET; sockadd.sin_port = htons(port); sockadd.sin_addr = *((LPIN_ADDR)*ipHost->h_addr_list); if(connect(s,(PSOCKADDR)&sockadd,sizeof(sockadd))!=0) return false; //recvをノンブロッキングモードにする unsigned long val=1; ioctlsocket(s, FIONBIO, &val); return true; } bool TCPSend(char*sendWord){ int nRtn,i; //ポインタで渡された送信文字列はsizeofが使えないため //文字数をカウントします for(i=0;sendWord[i]!='\0';i++); nRtn = send(s,sendWord,i,0);//送信 //nRtn==0 接続が終了しました //nRtn==SOCKET_ERROR if(nRtn==SOCKET_ERROR || nRtn==0) return FALSE; else return TRUE; } bool TCPRead(char*buff,int bfSize){ int nRtn; //タイムアウトを約5秒にするためのループ for(int i=0;i<50;i++){ nRtn = recv(s,buff,bfSize,0);//受信 if(0