18,356
社区成员
发帖
与我相关
我的任务
分享
void Main::CreateSocket(void)
{
WORD myVersionRequest = MAKEWORD(2, 2);
WSADATA wsaData;
int errorCode = WSAStartup(myVersionRequest, &wsaData);
if(errorCode)
{
printf("Socket Startup Failed: %d\n", GetLastError());
}
else if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1)
{
printf("Socket Startup Failed: %d\n", GetLastError());
WSACleanup();
}
else
{
printf("Socket Startup successed\n");
}
}
void Main::Connect(void)
{
sockClient=socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
addr.sin_port = htons(6000);
connect(sockClient, (SOCKADDR*)&addr, sizeof(SOCKADDR));
printf("Connected to server");
}
void Main::Send(char* str)
{
send(sockClient, str, strlen(str)+1,0);
printf("Sending \"%s\"...", str);
}
void Main::Disconnect(void)
{
closesocket(sockClient);
printf("Disconnected from server");
}
void Main::DestroySocket(void)
{
WSACleanup();
printf("Socket Destroyed\n");
}
int _tmain(int argc, _TCHAR* argv[])
{
Main client;
client.CreateSocket();
client.Connect();
while(1)
{
printf("\nEnter Message:\n");
char msg[100];
std::cin.getline(msg, 100);
client.Send(msg);
}
client.Disconnect();
client.DestroySocket();
return 0;
}
void Main::CreateSocket(void)
{
WORD myVersionRequest = MAKEWORD(2, 2);
WSADATA wsaData;
int errorCode = WSAStartup(myVersionRequest, &wsaData);
if(errorCode || LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1){
printf("Socket Startup Failed: %d\n", GetLastError());
}
printf("Socket Startup successed\n");
}
void Main::StartListen(void)
{
SOCKET serverSocket = socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addr.sin_port = htons(6000);
bind(serverSocket, (SOCKADDR*)&addr, sizeof(SOCKADDR));
listen(serverSocket, 1);
printf("Listening...\n");
listening = true;
SOCKADDR_IN clientAddr;
int len = sizeof(SOCKADDR);
while(listening)
{
SOCKET sockConn = accept(serverSocket, (SOCKADDR*)&clientAddr, &len);
char recvBuffer[100];
recv(sockConn, recvBuffer, strlen(recvBuffer)+1, 0);
printf("Received From Client: %s\n", recvBuffer);
closesocket(sockConn);
}
}
void Main::StopListen(void)
{
listening = false;
}
void Main::DestroySocket(void)
{
WSACleanup();
printf("Socket Destroyed\n");
}
int _tmain(int argc, _TCHAR* argv[])
{
Main server;
server.CreateSocket();
server.StartListen();
server.StopListen();
server.DestroySocket();
return 0;
}