• 大小: 298KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: socket编程  cpt组网  

资源简介

华中科技大学计算机网络实验,,包含socket编程实验,可靠数据传输实验,cpt组网实验

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

#pragma comment(lib “Ws2_32.lib“)

#define SIZE 1024*8

void WaitThreadOtherENd(std::thread *);
bool sign = 0;

class sSocket {
static SOCKET sServSocket; //服务器socket
static int nNumConns;
static std::string homeFolder;
static std::map conType;
static int maxThread;

private:
static int FileLength(const std::string &filePath); //获取文件大小
static std::string RequestobjectPath(const std::string &pkg); //从请求报文解析请求对象
static std::string FileType(const std::string &filePath); //获取文件类型
static bool SendFile(SOCKET clientSocket const std::string &filePath); //发送请求的对象文件

public:
static void SetHomeFolder(std::string folder); //设置主目录
static void SetMaxThread(int num);
static bool LoadContentType(); //初始化文件类型表
static bool WinsockStarup();
static bool ServerStartup(u_short port);
static bool ListenStartup();
static SOCKET GetServSocket();
static bool CreateNewThread(SOCKET clientSocket);
static void Loop(SOCKET clientSocket);
static bool Empty();
static bool StartServe(u_short port);
static int NumClientlink();
};

int sSocket::nNumConns = 0;
int sSocket::maxThread = 0;
SOCKET sSocket::sServSocket;
std::string sSocket::homeFolder;
std::map sSocket::conType;

bool sSocket::Empty()
{
return maxThread - nNumConns;
}

int sSocket::NumClientlink()
{
return nNumConns;
}

bool sSocket::CreateNewThread(SOCKET clientSocket)
{
nNumConns++;
std::thread t(sSocket::Loop clientSocket);
t.detach();
return true;
}

bool sSocket::WinsockStarup()
{
WSADATA wsaData;
int nRc = WSAStartup(MAKEWORD(2 2) &wsaData);
if (nRc)
{
std::cout << “WSAStartup失败!“ << std::endl;
return false;
}
if (wsaData.wVersion != 0x0202)
{
WSACleanup();
std::cout << “版本支持不够!“ << std::endl;
return false;
}
return true;
}

bool sSocket::ServerStartup(u_short port)
{
sServSocket = socket(AF_INET SOCK_STREAM 0);
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
if (bind(sServSocket (LPSOCKADDR)&addr sizeof(addr)) == SOCKET_ERROR)
{
int nRc = WSAGetLastError();
std::cout << “绑定失败:“ << nRc << std::endl;
return false;
}
return true;
}

bool sSocket::ListenStartup()
{
if (listen(sServSocket 2) == SOCKET_ERROR)
{
int nRc = WSAGetLastError();
std::cout << “监听失败:“ << nRc << std::endl;
return false;
}
return true;
}
SOCKET sSocket::GetServSocket()
{
return sServSocket;
}

bool sSocket::LoadContentType()
{
std::ifstream is(“request_object.txt“);
if (!is)
return false;
std::string key;
while (is >> key)
is >> conType[key];
conType[““] = ““;
return true;
}

void sSocket::SetHomeFolder(std::strin

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      13140  2018-12-28 19:48  CPT组网实验\1_1.pkt

     文件      14123  2018-12-28 19:46  CPT组网实验\1_2.pkt

     文件      13137  2018-12-28 19:46  CPT组网实验\2_1.pkt

     文件      12779  2018-12-28 19:46  CPT组网实验\2_2.pkt

     文件      12849  2018-12-28 19:46  CPT组网实验\2_3.pkt

     文件      12852  2018-12-28 19:55  CPT组网实验\2_4.pkt

     文件      42694  2018-12-28 19:46  CPT组网实验\3.pkt

     文件       9879  2019-01-08 22:33  Socket编程实验\socket.cpp

     文件     239104  2018-12-11 15:29  Socket编程实验\socket.exe

     文件       1086  2018-12-07 19:17  数据可靠传输协议设计实验\GBN\DataStructure.h

     文件     165888  2018-12-25 15:39  数据可靠传输协议设计实验\GBN\GBN.exe

     文件       1978  2018-12-25 15:48  数据可靠传输协议设计实验\GBN\GBNRdtReceiver.cpp

     文件        330  2018-12-07 19:17  数据可靠传输协议设计实验\GBN\GBNRdtReceiver.h

     文件       7861  2019-01-08 22:33  数据可靠传输协议设计实验\GBN\GBNRdtSender.cpp

     文件        918  2018-12-07 20:44  数据可靠传输协议设计实验\GBN\GBNRdtSender.h

     文件        265  2018-12-08 20:23  数据可靠传输协议设计实验\GBN\Global.h

     文件       1176  2018-12-08 21:02  数据可靠传输协议设计实验\GBN\NetworkService.h

     文件        188  2018-12-08 20:29  数据可靠传输协议设计实验\GBN\pch.cpp

     文件       1158  2018-12-25 14:15  数据可靠传输协议设计实验\GBN\pch.h

     文件        124  2018-12-07 17:48  数据可靠传输协议设计实验\GBN\RandomEventEnum.h

     文件       2828  2018-12-25 14:54  数据可靠传输协议设计实验\GBN\rdt.cpp

     文件        329  2018-12-07 17:48  数据可靠传输协议设计实验\GBN\RdtReceiver.h

     文件        780  2018-12-07 17:49  数据可靠传输协议设计实验\GBN\RdtSender.h

     文件        454  2018-12-07 17:49  数据可靠传输协议设计实验\GBN\Tool.h

     文件       1086  2018-12-07 19:17  数据可靠传输协议设计实验\SR\DataStructure.h

     文件        265  2018-12-08 20:23  数据可靠传输协议设计实验\SR\Global.h

     文件       1176  2018-12-08 21:02  数据可靠传输协议设计实验\SR\NetworkService.h

     文件        188  2018-12-08 20:29  数据可靠传输协议设计实验\SR\pch.cpp

     文件       1158  2018-12-25 14:19  数据可靠传输协议设计实验\SR\pch.h

     文件        124  2018-12-07 17:48  数据可靠传输协议设计实验\SR\RandomEventEnum.h

............此处省略33个文件信息

评论

共有 条评论