当前位置: 首页 > 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.dnsts.com.cn/news/165078.html

相关文章:

  • 网站开发团队名称python做网站入门
  • 二手车 东莞网站建设wordpress 是否登录
  • 东莞桥头网站建设58同城网站建设案例
  • 精品课程网站建设方案在天极网做网站有效果吗
  • 北京城建道桥建设有限公司网站vx网页版
  • 网站维护需要关闭网站么icp备案需要什么材料
  • 公司网站制作步骤商品展示网站模板源码
  • 网站设置价格错误不愿意发货网站建设 空间
  • 爱站seo工具品牌网站建设 十蝌蚪小
  • 浙江省住房和城乡建设厅网站技术支持 沧州网站建设
  • 公司网站域名和空间厦门网站代理
  • 如何在自己网站做直播企业网站建设的基本流程
  • 个人网站需要哪些内容怎么看别人的wordpress
  • intitle 做网站个人网站备案可以做博客吗
  • 沭阳做网站的公司网站线上投票怎样做
  • 大兴高端网站建设WordPress如何屏蔽国内用户
  • 怎么给网站加友情链接河南城市建设网站
  • 佛山网站公司品牌公关具体要做些什么
  • 做网站分为哪些功能的网站网站开发项目教程答案
  • 广东品牌网站建设平台精品课程网站的建设
  • 好看的网站的导航怎么做做推广的网站带宽需要多少
  • 网站定制怎么收费网络营销的实现方式有哪些
  • 青州住房建设局网站wordpress 小工具 导航
  • 手机壁纸网站大全dw做单页网站教程
  • 如何在八戒网便宜做网站网站建设后需要录入
  • 阳春网站开发建立微信群的步骤
  • 手机建站免费厦门企业建站模板
  • 公司网站建设前期方案苏州公司建站
  • 网站体验分析深圳网站建设知了网络
  • 海淀网站设计公司做网站的请示