tcp/ip 程序 (改进版) client.c

来源:互联网 发布:东阳市农村淘宝分布 编辑:程序博客网 时间:2024/06/03 22:06
/***************************************************版权说明:该程序为Shaw Song所有版本号:  2.0生成日期:2016.8.2作者:    Shaw Song内容:    客户端源程序功能:    运行于linux客户端,完成以下四种服务          1.客户端登录服务  2.客户端注册服务  3.客户端交流服务  4.客户端退出服务函数列表:1.main修改日志:2016.08.02  Shaw Song  修改程序使之符合C语言编码规范 ****************************************************/#include"client.h"int main(){/* 变量初始化 */int ClientFd;struct sockaddr_in ClientAddr;int AddrLen = sizeof(struct sockaddr_in);/* 建立socket */ClientFd = socket(PF_INET, SOCK_STREAM, 0);/* 配置socket */ClientAddr.sin_family = AF_INET;ClientAddr.sin_port = htons(PORT);ClientAddr.sin_addr.s_addr = inet_addr("192.168.195.129");memset(ClientAddr.sin_zero, 0, 8);/* connect */if (connect(ClientFd, (struct sockaddr*)&ClientAddr, AddrLen) < 0){perror("connect  error");return 0;}/********* 服务部分 *********//* 登录服务*/struct Message msg;char buffer[BUFFERSIZE];int flag = 0;char input[10];while (1){memset(&msg, '\0', BUFFERSIZE);memset(buffer, '\0', BUFFERSIZE);Client_Login(ClientFd);//将用户名密码发送给客户端recv(ClientFd, buffer, BUFFERSIZE, 0);//接收客户端发出的登录结果        msg = *(struct Message*)buffer;if (memcmp(msg.head, "LISC", 4) == 0){flag = 1;printf("%s\n", msg.content);break;}        else if(memcmp(msg.head, "LIFL", 4) == 0)        {            flag = 0;            printf("%s\n", msg.content);        }}if (flag == 1){/* Talk服务 */while (1){// 处理用户请求printf ("Your Option:\n");printf ("1:Talk\n");printf ("2:Sign\n");printf ("3:Quit\n");scanf ("%s", input);if (input [0] == '1')   Client_Talk(ClientFd);else if (input[0] == '2')   Client_Sign(ClientFd);else if (input [0] == '3'){printf("Thank you for your using!\n");printf ("QUIT! Goodbye~~~\n");Client_Quit(ClientFd);break;}elseprintf("Wrong Choice Numbuer!!!\n");        }}    close (ClientFd);return 0;}

0 0
原创粉丝点击