C++网络编程


972 浏览 6 years, 2 months

2.2 因特网服务器1 - SocketLib

版权声明: 转载请注明出处 http://www.codingsoho.com/
添加工程文件

将SocketLib文件添加到当前工程里,同时Project Option - Directories - Include Directories 里添加BasicLib的访问位置
因为在SocketLibSocket.h有下面调用语句

#include "BasicLib/BasicLib.h"
使用Socket类来实现基本服务器功能

替换代码为

#include "SocketLib/SocketLibSocket.h"
using namespace SocketLib;

int main()
{   
    ListeningSocket _lsock;
    _lsock.Listen(4000);
    DataSocket _dsock;
    _dsock = _lsock.Accept();   
    char _buffer[128] = "Hello There!";
    _dsock.Receive(_buffer, 128);
    cout << "Data received:" << endl;
    cout << _buffer << endl;    

    return 0;

首先定义监听套接字,并将它绑定到端口4000,套接字默认是阻塞的。Listen函数里同时会执行绑定和监听动作。
完成监听后,用阻塞函数Accept开始接收输入流,如果接收到输入流,那么调用Receive函数接收数据,并将数据输入到屏幕上。

Socket初始化

记得include下面文件,它会初始化一个全局的System g_system;, 否则套接字初始化会失败

#include "SocketLib/SocketLibSystem.h"