bool TCPNet::InitNetWork(){//1.選擇種類 --
WORD wVersionRequested;
WSADATA wsaData;int err;/* Use the MAKEWORD(lowbyte, highbyte) macro declared in Windef.h */
wVersionRequested =MAKEWORD(2,2);
err =WSAStartup(wVersionRequested,&wsaData);if(err !=0){/* Tell the user that we could not find a usable *//* Winsock DLL. */// printf("WSAStartup failed with error: %d\n", err);return false;}if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=2){/* Tell the user that we could not find a usable *//* WinSock DLL. */// printf("Could not find a usable version of Winsock.dll\n");UnInitNetWork();return false;}//2.僱傭店長 -- socket
m_sock_client =socket(AF_INET,SOCK_STREAM,IPPROTO_TCP );if(m_sock_client == INVALID_SOCKET ){UnInitNetWork();return false;}//3.選址 ---
sockaddr_in addrServer;
addrServer.sin_family = AF_INET;
addrServer.sin_addr.S_un.S_addr =inet_addr(SERVER_IP);
addrServer.sin_port =htons(_DEFPORT);if(SOCKET_ERROR ==connect(m_sock_client,(const sockaddr*)&addrServer,sizeof(addrServer))){UnInitNetWork();return false;}//5.創建線程
m_hThreadRecv =(HANDLE)_beginthreadex(NULL,0,&ThreadRecv,this,0,0);return true;}
1.3 更改參數
1.TCONet 中的 SendData 函數,在 Server 端需要一個套接字來區分向哪個客戶端發送數據,但是在客戶端中,與服務器連接的和與服務器進行數據交換的使用的是同一個套接字,因此不需要一個新的套接字作爲參數傳入;