服务端

//服务端(以C++作范例)
#include"mysocket.h"        
//导入头文件:由于mysock头文件本身就有其它文件,这里无需导入     
using namespace std;
SOCKET s_accept;
int main(){
    cout << "---------------------------服务端---------------------------\n";
    cout << "正在启动...\n";
    startup();
    cout << "启动成功!\n";
    SOCKET s = createSocket(PF_INET, SOCK_STREAM);
    //以IPV6协议创建套接字 
    //填充信息 
    SOCKADDR_IN server_addr;
    server_addr.sin_family = AF_INET;//协议 
    server_addr.sin_port = htons(1000);//端口,随便填 
    server_addr.sin_addr.S_un.S_addr = inet_addr("192.168.1.25"); 
    //ip地址,这里填服务端设备上的ip,127.0.0.1是本地ip,不能实现跨设备交互 
    if (bind(s, (SOCKADDR*)&server_addr, sizeof(SOCKADDR)) == SOCKET_ERROR)
    //绑定套接字 
    {
        cout << "套接字绑定失败!\n";
        WSACleanup();
        return FALSE;
    }
    cout << "套接字绑定成功!" << endl;
    if (listen(s, 1) == SOCKET_ERROR)
    {
        //监听:将服务端转为被动状态,接收请求 
        cout << "监听失败!\n";
        WSACleanup();
        return FALSE;
    }
    cout << "设置监听状态成功!\n";
    sockaddr_in accept_addr;         //用来记录请求连接的套接字信息
    int len = sizeof(SOCKADDR);
    cout << "等待客户端发起请求..." << endl;
    SOCKET t = accept(s, (SOCKADDR*)&accept_addr, &len);
    //接受连接请求 
    if (s_accept == SOCKET_ERROR) {
        cout << "请求错误!\n";
        WSACleanup();
        return FALSE;
    }
    cout<<"建立连接成功!\n";
    char recv_buf[1145],send_buf[4514];
    while(1){
        //信息交互部分,可以作改动 
        myrecv(t,recv_buf);
        cout<<"接收到客户端信息:" << recv_buf << endl;
        cout<<"请输入要发送的信息:";
        cin>>send_buf;
        mysend(t, send_buf; 
    }
    return 0;
}

 编译环境添加-static-libgcc -lwsock32

posted @ 2024-06-08 10:02  王一行(小号)  阅读(11)  评论(0编辑  收藏  举报