Server端:
#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
#define PORT_NUMBER 11234
#define MAX_BUF_SIZE 1024
int main()
{
WSADATA wSaData;
WORD dwSockVersion = MAKEWORD(2,2);
if (0 != WSAStartup(dwSockVersion,&wSaData)) //协商版本号
{
printf("Arrange Version Failure");
return -1;
}
SOCKET nSocket;
nSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //创建TCP socket
if (INVALID_SOCKET == nSocket)
{
printf("invalid socket");
WSACleanup();
return -1;
}
sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = inet_addr("127.0.0.1");
sa.sin_port = htons(PORT_NUMBER);//选择一个端口号
if (bind(nSocket,(sockaddr *)&sa,sizeof(sa)) < 0) //绑定
{
closesocket(nSocket);
return -1;
}
listen(nSocket,2);
sockaddr_in addr_client;
int nAddrLen = sizeof(addr_client);
SOCKET nSock = accept(nSocket,(sockaddr *)&addr_client,&nAddrLen);
while(TRUE)
{
if (INVALID_SOCKET == nSock)
{
printf("failure to accept");
continue;
}
char tmp[MAX_BUF_SIZE] = {0};
char buf[MAX_BUF_SIZE] = {0};
const char *pBuffer = "the server recvie the infromation\n";
send(nSock, pBuffer, strlen(pBuffer), 0);
int nRecv = recv(nSock, buf, MAX_BUF_SIZE, 0);
if (nRecv > 0)
{
printf("%s\n",buf);
}
}
closesocket(nSock);
return 0;
}
Client端:
#include <Winsock2.h>
#include <stdio.h>
#include <iostream>
#pragma comment(lib,"ws2_32.lib")
#define MAX_BUF_SIZE 1024
#define PORT_NUMBER 11234
int main()
{
WSADATA wSaData;
WORD dwSockVersion = MAKEWORD(2,2);
if (0 != WSAStartup(dwSockVersion,&wSaData)) //协商版本号
{
printf("Arrange Version Failure");
return -1;
}
SOCKET nSocket;
nSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //创建TCP socket
if (INVALID_SOCKET == nSocket)
{
printf("invalid socket");
WSACleanup();
return -1;
}
sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = inet_addr("127.0.0.1"); // accept the local IP
sa.sin_port = htons(PORT_NUMBER);
if ( 0 != connect( nSocket,( const SOCKADDR * )&sa, sizeof(sa) ) )
return -1;
char buf[MAX_BUF_SIZE] = {0};
char tmp[MAX_BUF_SIZE] = {0};
strcpy(tmp,"this is Client!");
int nRecv = 0;
const char *pClientBuffer = "sent a Message to the server";
int nSend = send(nSocket, pClientBuffer, strlen(pClientBuffer), 0);
while(nSend != 0) {
nRecv = recv(nSocket, buf, MAX_BUF_SIZE, 0);
if (nRecv > 0)
{
printf("%s\n",buf);
std::cout << "Input the Client Message: " << std::endl;
std::cin >> tmp;
nSend = send(nSocket, tmp, (int)strlen(tmp), 0);
if(nSend != 0) {
int i = WSAGetLastError();
int j = 0;
}
} else{
break;
}
}
closesocket(nSocket);
WSACleanup();
return 0;
}