当前位置: 首页 > news >正文

建设校园网站的意义腾讯云做网站步骤

建设校园网站的意义,腾讯云做网站步骤,网站单页,如何做域名网站目录 服务器端 代码 客户端 代码解析 服务器端 原理 遇到的阻碍以及解决办法 客户端 原理 遇到的阻碍以及解决办法 运行结果截图 总结 服务器端 代码 #include sys/types.h #include sys/socket.h #include stdio.h #include netinet…目录 服务器端 代码 客户端 代码解析 服务器端 原理 遇到的阻碍以及解决办法 客户端 原理 遇到的阻碍以及解决办法 运行结果截图 总结 服务器端 代码 #include sys/types.h #include sys/socket.h #include stdio.h #include netinet/in.h #include arpa/inet.h #include unistd.h #include string.h #include stdlib.h #include fcntl.h #include sys/shm.h #include iostream #include thread #include list using namespace std; #define PORT 8806 #define IP 127.0.0.1 int msocket; struct sockaddr_in servaddr; socklen_t m_len; listint connList; void addPerson(){while(1){int f_socketaccept(msocket,(struct sockaddr *) servaddr,m_len);connList.push_back(f_socket);cout玩家f_socket:进入房间endl;} } void sendList(int f_socket){for(int i0;iconnList.size()-1;i){char buf_1[1024];memset(buf_1,0,sizeof(buf_1));sprintf(buf_1,玩家%d(在线)\n,i3);send(f_socket,buf_1,sizeof(buf_1),0);} } void recv_meg(){struct timeval tv;tv.tv_sec0;tv.tv_usec0;listint::iterator it;while(true){for(itconnList.begin();it!connList.end();it){fd_set rds;FD_ZERO(rds);int max_fd0;int reval0;FD_SET(*it,rds);if(*itmax_fd){max_fd*it;}revalselect(max_fd1,rds,NULL,NULL,tv);if(reval-1){couterrorendl;}else if(reval0){//pass}else{char buf[1024];memset(buf,0,sizeof(buf));int len_1recv(*it,buf,sizeof(buf),0);if(len_10){if(buf[0]#){sendList(*it);}cout收到*it玩家的消息:;coutbufendl;}}}}} int main(){msocketsocket(AF_INET,SOCK_STREAM,0);memset(servaddr,0,sizeof(servaddr));servaddr.sin_familyAF_INET;servaddr.sin_addr.s_addrhtonl(INADDR_ANY);servaddr.sin_porthtons(PORT);if(bind(msocket,(struct sockaddr*) servaddr,sizeof(servaddr))-1){perror(bind);exit(1);}if(listen(msocket,20)-1){perror(listen);exit(1);}m_lensizeof(servaddr);thread thr_1(recv_meg);thr_1.detach();thread th_2(addPerson);th_2.detach();while(1){}return 0; } 客户端 #include iostream #include sys/socket.h #include stdio.h #include sys/time.h #include netinet/in.h #include arpa/inet.h #include cstring using namespace std; #define PORT 8806 int main(){int socket_1;fd_set rds;FD_ZERO(rds);struct timeval tv;socket_1socket(AF_INET,SOCK_STREAM,0);struct sockaddr_in servaddr;servaddr.sin_familyAF_INET;servaddr.sin_porthtons(PORT);servaddr.sin_addr.s_addrinet_addr(127.0.0.1);if(connect(socket_1,(struct sockaddr*)servaddr,sizeof(servaddr))0){perror(connect);exit(1);}while(1){tv.tv_sec10;tv.tv_usec0;FD_ZERO(rds);FD_SET(0,rds);FD_SET(socket_1,rds);int max_fd0;int reval0;if(max_fdsocket_1){max_fdsocket_1;}revalselect(max_fd1,rds,NULL,NULL,tv);if(reval-1){couterror!endl;}else if(reval0){//pass}else{if(FD_ISSET(socket_1,rds)){char buf_2 [1024];int len_1recv(socket_1,buf_2,sizeof(buf_2,0),0);if(len_10){cout.write(buf_2,len_1);}memset(buf_2,0,sizeof(buf_2));}if(FD_ISSET(0,rds)){char buf_3 [1024];fgets(buf_3,sizeof(buf_3),stdin);send(socket_1,buf_3,sizeof(buf_3),0);memset(buf_3,0,sizeof(buf_3));}}}return 0; } 代码解析 服务器端 原理 创建了一个套接字绑定端口和ip地址 之后创建一个线程用于接收外面的连接请求并且把生成的客户端的套接字存储到connList的链表中 之后用在又创建以线程用select函数来判断是否有客户端进行发送请求如果有判断第一个首字母是否为#如果是那么就放回发送connList链表 遇到的阻碍以及解决办法 发送的数据的时候最好加一个\n因为客户端没有换行所以打印的时候就会怪怪的由于是第一次实战开始那个大小端互相转化把我搞懵了索性本来也就不难干脆就记下来就行了。创建的服务器套接字以及客户端生成的套接字容易搞混用命名把它分开来了。超时时间目前服务器端来看没什么用反而会影响新客户端的连接服务器端会遍历套接字列表如果在等待的时候有新的连接进行请求依旧会继续堵塞因为他一次只能select一个套接字 客户端 原理 客户端就只有一个主函数同样绑定套接字之后用select用来判断是否有输入或者接受请求如果有输入则发送输入字节流如果有接收请求则调用接收函数并且将其打印出来 遇到的阻碍以及解决办法 打印输出的列表用printf函数或者用cout.write(字符串,长度)不要用cout函数会乱码——printf函数根据格式化字符串来输出数据而cout在默认情况下将字符串视为null-terminated字符串即以’\0’结尾。所以如果buf_2中的数据不是以’\0’结尾的cout将会继续输出直到遇到’\0’为止可能造成输出乱码。这里可以设置超时时间因为它只是监听套接字和输入流没有上面服务器端一样的遍历。 运行结果截图 总结 一个基于 C入门教程18socket 实现简单聊天室_std socket_爱我呦呦的博客-CSDN博客文章浏览阅读8.6k次点赞8次收藏88次。本节通过socket实现一个简单的聊天室功能聊天室中如果有人说话则服务器负责将内容传送给聊天室的其他人那么就需要客户端和服务端两个程序客户端负责发送消息服务端负责接收和转发消息客户端代码#include #include #include #include #include #in_std sockethttps://blog.csdn.net/u011416077/article/details/123593428的拓展功能。并且把一些不足之处给指出来了。
http://www.pierceye.com/news/499117/

相关文章:

  • 中小企业网站建设好么做国外网站衣服码数要怎么写
  • 新浪做网站wordpress divi 主题
  • 微网站建设资讯网页游戏开发教程
  • 网站建设评估百度公司地址
  • python 做网站开发吗搜房网网站跳出率
  • 深圳企业模板网站建设做高性能的网站 哪门语言好
  • 网站后台不能上传微信公众平台网页版登陆
  • 广州网站营销seo费用成都建设网站那家好
  • 网站建设规划书结构简单wordpress
  • 域名注册网站哪个好山东淄博网络科技有限公司
  • 固始县网站建设培训怎么制作网站首页
  • 产品经理做网站三河市最新消息
  • 做新闻类网站需要什么资质如何外贸seo网站建设
  • 注册网站流程和费用百度seo关键词排名s
  • 做推广网站的去哪能买到有效资料苏州建设网站找网络公司
  • vs做网站如何输出怎么做flash网站
  • 网站做政务广告传媒公司简介ppt
  • 番茄网络营销策划方案seo网站培训
  • 自己做一网站高唐网页定制
  • 快速网站seo效果什么是网络营销与概念
  • 个体网站建设企业网站做的好的有什么公司
  • 建设银行网站短信错误6次wordpress个人淘客
  • 让网站快速收录最新集团公司网站案例
  • 网站开发公司长春高校 网站建设实施方案
  • 我做的网站打开慢怎么处理防控措施有这些优化
  • 网站的登录界面是怎么做的网站开发 职位
  • 西安英文网站制作企业年报申报入口官网
  • 做一网站多少钱企业官方网站建设教程
  • 自己建的网站能用吗海南网站建设哪家好
  • 网络公司网站模板html网站制作 数据库