看流星社区

 找回密码
 注册账号
查看: 1723|回复: 0

网络验证笔记2:网络服务端代码

[复制链接]

该用户从未签到

发表于 2014-6-15 08:54:44 | 显示全部楼层 |阅读模式
#include "stdafx.h"
#include <WINSOCK2.H>
#include <iostream.h>
#pragma comment(lib,"ws2_32.lib")


int main(int argc, char* argv[])
{
        SOCKET m_sock,accsock;
        WSADATA wsaData;
        if (0 !=WSAStartup(MAKEWORD(2,2),&wsaData))
        {
                cout<<"加载套接字失败!\n";
                return 0;
        }
        m_sock = socket(AF_INET,SOCK_STREAM,0);
        if (m_sock==INVALID_SOCKET)
        {
                cout<<"socket失败!\n";
                return 0;
        }

    sockaddr_in baddr;
        baddr.sin_family=AF_INET;
        baddr.sin_port=htons(6789);
        baddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
        if (SOCKET_ERROR==bind(m_sock,(sockaddr*)&baddr,sizeof(sockaddr_in)))
        {
                cout<<"bind失败!\n";
        closesocket(m_sock);
        WSACleanup();
                return 0;
        }
        if (SOCKET_ERROR == listen(m_sock,5))
        {
                cout<<"listen失败!\n";
        closesocket(m_sock);
        WSACleanup();
                return 0;
        }
        cout<<"listen完成!\n";

        sockaddr_in accaddr;
        int accint = sizeof(sockaddr_in);
        accsock = accept(m_sock,(sockaddr*)&accaddr,&accint);
    if (accsock==INVALID_SOCKET)
    {
                cout<<"accept失败!\n";
        closesocket(m_sock);
        WSACleanup();
    }
    cout<<"有客户端连接了\n";

        int bSend = send(accsock,"欢迎你登录!",sizeof("欢迎你登录!"),0);
    if (bSend<=0)
    {
                cout<<"发送消息失败!";
                closesocket(m_sock);
                closesocket(accsock);
        WSACleanup();
    }
   
        while (1)
        {
                char buff[256]={0};
                int bRecv = recv(accsock,buff,sizeof(buff),0);
                if (bRecv==SOCKET_ERROR )
                {
                    cout<<"接收消息失败!";
                        Sleep(50);
                        continue;
                }
                cout<<buff<<endl;
                char sbuff[256]={0};
                cin>>sbuff;
                int bSend1 = send(accsock,sbuff,sizeof(sbuff),0);
                if (bRecv==SOCKET_ERROR )
                {
                        cout<<"发送消息失败!";
                        Sleep(50);
                        continue;
                }
        }
        return 0;
}
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-29 04:19

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表