信息安全工程-服务器端程序

         只有8080端口接受信息的服务器程序编写

#include <stdio.h>
#include <iostream>
#include <winsock2.h>
#pragma comment (lib, "ws2_32.lib")//加载 ws2_32.dll
using namespace std;

int main() {
    int retVal;//调用各种Socket函数的返回值
    char buf1[1024];//用于接收客户端数据的缓冲区
    WSADATA wsaData;
    memset(buf1, '\0', sizeof(buf1));//清空数据接收缓冲区
    WSAStartup(MAKEWORD(2, 2), &wsaData);//初始化
    SOCKET servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);//创建套接字
    sockaddr_in sockAddr;
    memset(&sockAddr, 0, sizeof(sockAddr));  //每个字节都用0填充
    sockAddr.sin_family = PF_INET;//使用IPv4地址
    sockAddr.sin_addr.s_addr = inet_addr("主机地址");//具体的IP地址
    sockAddr.sin_port = htons(8080);//端口
    retVal = bind(servSock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR));//绑定套接字
    if (retVal < 0)
    {
        cout << "绑定失败!" << endl;
    }
    retVal = listen(servSock, 5);    //进入监听状态
    if (retVal < 0)
    {
        cout << "监听失败!" << endl;
    }
    SOCKADDR clntAddr;
    int nSize = sizeof(SOCKADDR);
    SOCKET clntSock = accept(servSock, (SOCKADDR*)&clntAddr, &nSize);//接收客户端请求
    if (retVal < 0)
    {
        cout << "连接失败!" << endl;
    }
    else
        cout << "连接成功!" << endl;
    retVal = recv(clntSock, buf1, 1024, 0);
    if (retVal < 0)
    {
        cout << "接收错误!" << endl;
    }

    //cout << buf1 << endl;

    char* id = strstr(buf1, "user=");
    char* sign = strstr(buf1, "&");
    char* passwd = strstr(buf1, "pwd=");
    cout << "提取成功!" << endl;
    cout << "账号:";
    for (int i = 0; i < sign - id - 5; i++)
    {
        cout << *(id + 5 + i);
    }
    cout << " 密码:";
    cout << passwd + 4 << endl;
    closesocket(clntSock);//关闭套接字
    closesocket(servSock);//关闭套接字
    WSACleanup();
    return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

年轻de风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值