资源简介
带gcc工具的linux平台编译。
代码片段和文件信息
/**
@file client.c
@author haohaibo
@date 2017/7/11
@brief 员工管理系统
运行时要加入对于server端的ip地址和端口号,例如./client 127.0.0.1 9999
*/
#include “freamwork.h“
static int status=0; //运行状态
static char user[N_SIZE]={0}; //当前用户名
static int current_no = 0; //当前用户ID
int main(int argcconst char *argv[])
{
int sockfd = -1;
int cho_num = 0;
MSG *msg = NULL;
msg = (MSG*)malloc(sizeof(MSG));
struct sockaddr_in serveraddr;
socklen_t addrlen = sizeof(struct sockaddr);
char buf[M_SIZE] = {0};
status=RUN_1;
#if 1
if(argc < 3)
{
printf(“argument is too few\n“);
exit(1);
}
//第一步:创建一个套接字
if((sockfd = socket(AF_INET SOCK_STREAM 0)) < 0)
{
errlog(“fail to socket“);
}
//第二步:填充服务器网络信息结构体
//inet_addr:将点分十进制IP地址转化为网络识别的
//htons:将主机字节序转化为网络字节序
//atoi:将数字型字符串转化为整型数据
serveraddr.sin_family = AF_INET;
serveraddr.sin_addr.s_addr = inet_addr(argv[1]);
serveraddr.sin_port = htons(atoi(argv[2]));
//第三步:发送客户端的连接请求
if(connect(sockfd (struct sockaddr *)&serveraddr addrlen) < 0)
{
errlog(“fail to connect“);
}
//setsockopt(sockfdIPROTO_TCPTCP_NODELAY&enablesizeof(enable));
#endif
#if 1
while(1)
{
while((status==RUN_1))
{
//REMLINE;
fflush(stdin);
/******************************/
my_printf(“1.login 2.quit “);
printf(“input your choice: “);
scanf(“%d“&cho_num);
REMLINE;
switch(cho_num)
{
case 1:
do_login(sockfdmsg);break;
case 2:
do_quit(sockfdmsg);break;
default:
puts(“input errorplease try again“);
break;
}
}
while((status==RUN_2))
{
//REMLINE;
fflush(stdin); /******************************/
my_printf(“1.add 2.delete 3.modify 4.select 5.quit“);
printf(“input your choice:“);
scanf(“%d“&cho_num);
REMLINE;
switch(cho_num)
{
case 1:
do_add(sockfdmsg);break;
case 2:
do_delect(sockfdmsg);break;
case 3:
do_modify(sockfdmsg);break;
case 4:
do_select(sockfdmsg);break;
case 5:
do_quit(sockfdmsg);break;
default:
puts(“input errorplease try again:“);
break;
}
}
while((status==RUN_3))
{
//REMLINE;
fflush(stdin); /******************************/
my_printf(“1.modify 2.select 3.quit“);
printf(“input your choice:“);
scanf(“%d“&cho_num);
REMLINE;
switch(cho_num)
{
case 1:
do_modify(sockfdmsg);break;
case 2:
do_select(sockfdmsg);break;
case 3:
do_quit(sockfdmsg);break;
default:
puts(“input errorplease try again:“);
break;
}
}
}
close(sockfd);
return 0;
}
#endif
void my_printf(const char *str)
{
puts(“******************************“);
puts(str);
puts(“******************************“);
}
/**申请登录*/
int do_login(int sockfdMSG *msg)
{
//msg=(MSG *)malloc(M_SIZE);
char name[N_SIZE];
char passwd[N_SIZE];
printf(“please input name: “);
scanf(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7269 2017-07-12 11:46 test\1\a.out
文件 8389 2017-07-12 18:51 test\1\client.c
文件 2293 2017-07-12 11:33 test\1\freamwork.h
文件 114 2017-07-12 10:14 test\1\Makefile
文件 9702 2017-07-12 11:55 test\1\server.c
目录 0 2017-07-12 20:13 test\1
目录 0 2017-07-12 13:10 test
----------- --------- ---------- ----- ----
27767 7
- 上一篇:色彩改进型Retinex彩色图像增强方法
- 下一篇:U盘克隆工具
相关资源
- 中南民大数据结构-八皇后问题含实验
- 电磁环岛相关资料.zip
- 人机交互实验-命令行菜单界面
- 中缀表达式求值
- 基于DSP的语音录放实验程序
- 一个随笔画程序
- 标准C实现FTP上传功能
- 中南大学单片机课设 密码锁
- 交通灯控制系统
- funcode坦克大战源码
- 数据结构与算法全集C源代码+详细注释
- Open62541 win32 动态库
- Proteus8.9 VSM Studio WINAVR编译器仿真ATM
- 温度测试代码加仿真图protues
- 截图、抓屏程序纯C实现
- C代码版本的HTTP POST上传文件/JSON
- 图书管理系统数据
- 进程调度 时间片轮转与优先级 作业调
- 数字钟仿真+源程序.zip
- 蓝牙小车程序 绝对完整 整个工程
- 倒立摆源码,自动起摆源码
- 杂志订阅信息管理
- 中颖单片机SH79F1612A例程
- 6/4开关磁阻电机开环运行程序基于5
- LED点阵显示汉字
- RN8209计量芯片UART通讯
- MinGW免安装软件
- linux平台基于socket图形化网络聊天
- PCF8591 ad转换及lcd显示
- 数据结构课程设计——商品货架管理
评论
共有 条评论