资源简介
掌握C语言形式的Socket编程接又用法,能够正确发送和接收网络数据包; 分为客户端和服务端
代码片段和文件信息
/*socket tcp客户端*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#include “public.h“
#define BUFSIZE 1024
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct RequestPkt
{
char type[5]; //time name list msge quit
char number[3]; //the order of the client would recieve the msg
char content[800]; //the content of the target client woulf receive
};
struct MsgPkt
{
char msg; //$1 / 0
char order[3]; //order of the client who send the msg
char IP[20]; ///if it is responsePkt IP == type; port == number; content == content
char port[5];
char content[800];
};
void PktRequst(struct RequestPkt* t char* s);
void PktMsg(struct MsgPkt* t char* s);
void cut(char* s char* tar int order)
{
int i = 0;
int j = 0;
int k = 0;
while(i != order)
{
if(tar[j++] == ‘$‘) i++;
}
while(tar[j] != ‘$‘)
{
s[k++] = tar[j++];
}
s[k] = ‘\0‘;
}
void PktRequst(struct RequestPkt* t char* s)
{
strcpy(s “\0“);
strcpy(s “$“);
strcat(s t->type);
if(strcmp(t->type “msge“) == 0)
{
strcat(s “$“);
strcat(s t->number);
strcat(s “$“);
strcat(s t->content);
}
strcat(s “$“);
}
void unPktReq(char* s struct RequestPkt* t)
{
cut(t->type s 1);
if(s[1] == ‘m‘)
{
cut(t->number s 2);
cut(t->content s 3);
}
}
void PktMsg(struct MsgPkt* t char* s)
{
strcpy(s “\0“);
strcpy(s “$“);
s[1] = t->msg;
strcat(s “$“);
if(t->msg == ‘1‘ || t->msg == ‘3‘)
{
strcat(s t->order);
strcat(s “$“);
strcat(s t->IP);
strcat(s “$“);
strcat(s t->port);
strcat(s “$“);
strcat(s t->content);
strcat(s “$“);
} else
{
strcat(s “$“);
strcat(s t->IP);
strcat(s “$“);
if(strcmp(t->IP “msge“) == 0)
{
strcat(s t->port);
strcat(s “$“);
strcat(s “$“);
}
if(strcmp(t->IP “list“) == 0)
{
strcat(s t->port);
strcat(s “$“);
strcat(s t->content);
strcat(s “$“);
}
if(strcmp(t->IP “name“) == 0 || strcmp(t->IP “time“) == 0)
{
strcat(s “$“);
strcat(s t->content);
strcat(s “$“);
}
}
}
int unPktMsg(char* s struct MsgPkt* t)
{
// if(s[1] != ‘1‘) return 0;
t->msg = s[1];
cut(t->order s 2);
cut(t->port s 4);
cut(t->IP s 3);
cut(t->content s 5);
return 1;
}
/////////////////////////////////////////////////////
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-11 14:27 code\
文件 9960 2018-04-11 14:27 code\c.c
目录 0 2018-05-14 08:11 __MACOSX\
目录 0 2018-05-14 08:11 __MACOSX\code\
文件 2277 2018-04-11 14:27 __MACOSX\code\._c.c
文件 14344 2018-04-08 17:23 code\client
文件 10578 2018-04-11 14:27 code\s.c
文件 3445 2018-04-11 14:27 __MACOSX\code\._s.c
文件 14300 2018-04-08 17:21 code\server
- 上一篇:个人银行账户管理程序C++
- 下一篇:实训项目-基于MFC网络监控源代码可直接运行
相关资源
- 实训项目-基于MFC网络监控源代码可直
- 个人银行账户管理程序C++
- 编写并调试一个模拟的进程调度程序
- C++编写的有界面的扫雷游戏
- 遗传算法.cpp
- 基于STM32F4的加速度频域二次积分振动
- C++编写的第三人称视角小球Ploygon风格
- MFC按行读取txt文件,以空格分隔字符
- 基于蚁群算法的TSP问题实现C语言
- C++ Primer Plus第6版源码.zip
- C语言-投票与管理系统
- 小甲鱼98集全套数据结构视频
- C实现数字转Unicode码
- 《嵌入式Linux上的C语言编程实践》
- 基于C#平台开发的surf算法,可直接运
- 循环码编译码通用版
- c++制作黄金矿工
- C语言实现简单的数据库管理系统
- MFC:Socket编程—TCP服务端和多个客户
- C/C++:Windows编程—代码获取本地所有
- 学生信息管理系统(数组版)
- ABB机器人的socket通信UDPRapid代码
- c++ 课程设计报告多个题目合集 完整
- C语言 心形.txt
- C++课设高校人员信息管理系统
- C语言实现简单的web服务器
- c语言的拓扑排序的课程设计
- c语言 文本编辑器
- c++实现哈夫曼树的编译码
- 新概念51单片机C语言教程入门、提高
评论
共有 条评论