资源简介
c++网络编程之服务端,我的下载中还有对应的客户端例子,两者配合使用实现进程间通信
代码片段和文件信息
#include //windows socket的头文件
#include
#include
#include
#include
#include
#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 WINAPI transmmit(const LPVOID arg)
{
//实际上这里为了追求并发性不应该加锁,上锁是为了方便看输出
m.lock();
F *temp = (F*)arg;
//获取文件的序号
//int file_id = temp->id;
//获取客户机的端口号
//ntohs(temp -> clientAddr.sin_port);
cout << “测试开始等待客户端发送消息...“ << endl;
//从客户端处接受数据
char Buffer[MAXBYTE] = { 0 }; //缓冲区
recv(temp->clientSocket Buffer MAXBYTE 0); //recv方法 从客户端通过clientScocket接收
cout << “线程“ << temp->id << “从客户端的“ << ntohs(temp->clientAddr.sin_port) << “号端口收到:“ << Buffer << endl;
//发送简单的字符串到客户端
const char* s = “Server file“;
send(temp->clientSocket s strlen(s) * sizeof(char) + 1 NULL);
cout << “线程“ << temp->id << “通过客户端的“ << ntohs(temp->clientAddr.sin_port) << “号端口发送:“ << s << endl;
m.unlock();
return 0;
}
int main()
{
WSADATA wsaData;
//第一个参数是winsocket load的版本号(2.2)
WSAStartup(MAKEWORD(2 3
评论
共有 条评论