Linux C 多人网络聊天室(UDP)
来源:互联网 发布:medline数据库论文 编辑:程序博客网 时间:2024/05/16 18:59
Linux C 多人网络聊天室(UDP)
任何直接甩代码的都是耍流氓!
一、客户端设计
客户端实现简单流程图
1.创建连接套接字
ConnectSocket()函数在socket.c中实现
sClient = ConnectSocket(serverIp, serverPort, "udp");if(sClient == -1){ ErrorHandler("ConnectSocket() Faild\n"); return -1;}
2.用户注册具体实现
/* * 用户注册,直到注册成功 *@ 无返回值*/void UserRegister(int socketfd){ int successFlag = 0; int iLen; char username[20]; char password[20]; while(!successFlag) { printf("请输入你的用户名(由字母、数字或下划线组成):"); scanf("%s",username); printf("请输入你的密码(由字母、数字或下划线组成):"); scanf("%s",password); /*发送到服务器*/ int ret = Post(socketfd, ACTION_REGISTER , username, password, "reister"); //recv from server register information char recvBuf[DATA_BUFFER_SIZE]; int iLen = Get(socketfd, recvBuf); printf("%s\n", recvBuf); if(strcmp(recvBuf,"[+]success\n") == 0) { printf("恭喜你,注册成功\n"); successFlag = 1; } else { printf("重新输入\n"); } }}
3.登录聊天室
在聊天室中,需要接收其他用户发送的信息,同时也需要读取自身的键盘输入,所以关键在于多线程的实现。
在这里我使用pthread来实现。POSIX thread 简称为pthread,Posix线程是一个POSIX标准线程.该标准定义内部API创建和操纵线程.
pthread_t getInputPID;//开启线程if(pthread_create(&getInputPID,NULL,ChatPost, (void * )&socketfd)){ ErrorHandler("开启线程失败\n"); return -1;}
完整源程序可以访问Linux C 客户端服务器源程序_Github
阅读全文
0 0
- Linux C 多人网络聊天室(UDP)
- UDP网络聊天室
- linux下使用UDP实现简易的多人聊天室
- 多人聊天室(基于Linux的SOCKET UDP编程)
- linux网络编程——UDP局域网聊天室
- Linux C实现简单的网络聊天室
- linux下 UDP 实现聊天室
- linux下网络聊天室
- 网络编程-UDP协议---简单聊天室程序
- 黑马程序员----网络编程UDP多线程聊天室
- [Linux C编程]UDP网络通信
- 基于Linux C的聊天室客户端(四)网络编程
- Linux&C网络编程————“聊天室”
- Linux c语言 聊天室
- 【linux】多人聊天室实现
- udp多人聊天室 1-server n-client
- UDP 聊天室
- UDP 聊天室
- Android编译系统
- Ubuntu安装NVIDIA驱动后桌面循环登录
- 深度学习之图像分割 《Fully Convolutional Networks for Semantic Segmentation》—FCN
- Java包(package)命名规则
- centos7下NAT模式设置静态ip
- Linux C 多人网络聊天室(UDP)
- Android Recyclerview焦点变化问题导致下拉刷新视觉卡顿
- nodejs时间获取
- Policy Gradient
- owncloud+collabora 实现网盘在线预览
- IronCAD Design Collaboration Suite 2017 v19.0 SP1官方版下载
- 关于js总结
- 基础练习 2n皇后问题
- deepmind_lab libxml2-2.9.4.tar.gz下载地址