C++网络

#include 
#include 
using namespace std;
SOCKET StartServer(){
    SOCKET serverSocket;
    if(INVALID_SOCKET == (serverSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))){
        cout << "create socket error" << endl;
        Sleep(3000);
        exit(-1);
    }
    short port = 9999;
    struct sockaddr_in serverAddress;
    memset(&serverAddress,0,sizeof(sockaddr_in));
    serverAddress.sin_family=AF_INET;
    serverAddress.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
    serverAddress.sin_port = htons(port);
    if(SOCKET_ERROR == bind(serverSocket,(sockaddr*)&serverAddress,sizeof(serverAddress))){
        cout<<"bind error at :"<3000);
        exit(-1);
    }
    if(SOCKET_ERROR == listen(serverSocket,SOMAXCONN)){
        cout<<"listen error..." << endl;
        Sleep(3000);
        exit(-1);
    }
    cout<< "Server is listening at " << port << "......" << endl;
    return serverSocket;
}
SOCKET ReceiveConnect(SOCKET &serverSocket){
    SOCKET clientSocket;
    struct sockaddr_in clientAddress;
    memset(&clientAddress,0,sizeof(clientAddress));
    int addrlen = sizeof(clientAddress);
    if(INVALID_SOCKET == (clientSocket = accept(serverSocket,(sockaddr*)&clientAddress,&addrlen))){
        cout<<"receive client error..." << endl;
        Sleep(3000);
        exit(-1);
    }
    cout << "Accept connection from " << inet_ntoa(clientAddress.sin_addr)<return clientSocket;
}
void SendMsg(SOCKET &clientSocket,string data){
    cout<<"server send msg:" << data;
    if(send(clientSocket,data.data(),data.length(),0)==SOCKET_ERROR){
        cout<<"send error..."<3000);
        exit(-1);
    }
}
int main(){
    cout << "start..." << endl;
    WSADATA wsa;
    if(0 != WSAStartup(MAKEWORD(2,2),&wsa)){
        cout<<"socket init error";
        Sleep(3000);
        exit(-1);
    }
    SOCKET serverSocket = StartServer();
    SOCKET clientSocket = ReceiveConnect(serverSocket);
    for(;;){
        SendMsg(clientSocket,"hello world!!\r\n");
        Sleep(1000);
    }
    return 0;
}

你可能感兴趣的:(java基础,一步一步CPP)