admin管理员组

文章数量:1631138

最近突然对传输层的东西有了兴趣...发现自己虽然学过计网也学过C++,却没有真正实现过客户端和服务器之间的通信,于是恶补了一下socket知识,再加上大佬们的指导,模仿着写了个demo...

直接上代码。

首先是服务器端,要注意如果一开始写了using namespace std; 那么就要注意std里面的bind和socket相关的bind是同名的...如果直接调用bind,实际上调用的是std::bind,而不是socket的bind方法。解决途径是调用::bind,感谢万能的StackOverflow...

因为这个问题我昨晚调试到半夜三点依然没解决...同时也感谢cao大佬的耐心指导,顺便贴个友链:http://showlinkroom.me/

Sever代码如下:

#include "stdafx.h"
#include <WinSock2.h> //windows socket的头文件
#include <Windows.h>
#include <iostream>
#include <thread>
#include <mutex>
#include <process.h>

#pragma comment(lib, "ws2_32.lib") //连接winsock2.h的静态库文件

using namespace std;

mutex m;

//定义结构体用来设置
typedef struct my_file
{
	SOCKET clientSocket; //文件内部包含了一个SOCKET 用于和客户端进行通信
	sockaddr_in clientAddr; //用于保存客户端的socket地址
	int id; //文件块的序号
}F;

DWORD W

本文标签: 多线程通信环境WindowsTCP