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

临河 网站建设泉州专业网站开发公司

临河 网站建设,泉州专业网站开发公司,照片视频制作软件app,新手要如何让网站被收录基于TCP的本地通信(服务器):创建流程:一、创建字节流式套接字(socket函数): int sock_fd socket(AF_LOCAL,SOCK_STREAM,0);二、创建服务器和客户机的本地网络信息结构体并填充服务器本地网络信…
  • 基于TCP的本地通信(服务器):
  • 创建流程:
  • 一、创建字节流式套接字(socket函数):
	int sock_fd = socket(AF_LOCAL,SOCK_STREAM,0);
  • 二、创建服务器和客户机的本地网络信息结构体并填充服务器本地网络信息结构体 (struct sockaddr_un):
  • 本地网络信息结构体:
	#include <sys/un.h>struct sockaddr_un {sa_family_t sun_family;               //AF_LOCALchar        sun_path[108];            //pathname};
	//填充服务器和客户机网络信息结构体struct sockaddr_un serveraddr,clientaddr;socklen_t serveraddr_len = sizeof(serveraddr);socklen_t clientaddr_len = sizeof(clientaddr);memset(&serveraddr,0,serveraddr_len);memset(&clientaddr,0,clientaddr_len);serveraddr.sun_family = AF_LOCAL;strcpy(serveraddr.sun_path,"./tcpserver");
  • 三、绑定字节流式套接字(bind函数):
	bind(sock_fd,(struct sockaddr *)&serveraddr,serveraddr_len);
  • 四、设置套接字为被监听状态(listen函数):
	listen(sock_fd,5);
  • 五、阻塞等待客户端连接(accept函数):
	accept(sock_fd,(struct sockaddr *)&clientaddr,&clientaddr_len);
  • 六、服务器端收发数据(recv函数、send函数):
			memset(buf,0,sizeof(buf));if(-1 == (nbytes = recv(accept_fd,buf,sizeof(buf),0))){perror("recv error");exit(-1);}else if(0 == nbytes){printf("客户端[%s]断开了连接\n",clientaddr.sun_path);break;}printf("客户端[%s]发来数据[%s]\n",clientaddr.sun_path,buf);//组装应答消息strcat(buf,"-------k");ret = send(accept_fd,buf,sizeof(buf),0);if(-1 == ret){perror("send error");exit(-1);}
  • 七、关闭套接字(close函数):
	close(accept_fd);close(sock_fd);
  • 示例代码:
	#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <sys/socket.h>#include <sys/types.h>#include <netinet/ip.h>#include <sys/un.h>#include <arpa/inet.h>#include <stdbool.h>int main(int argc, char const *argv[]){//创建套接字int sock_fd = socket(AF_LOCAL,SOCK_STREAM,0);if(-1 == sock_fd){perror("socket error");exit(-1);}//填充服务器和客户机网络信息结构体struct sockaddr_un serveraddr,clientaddr;socklen_t serveraddr_len = sizeof(serveraddr);socklen_t clientaddr_len = sizeof(clientaddr);memset(&serveraddr,0,serveraddr_len);memset(&clientaddr,0,clientaddr_len);serveraddr.sun_family = AF_LOCAL;strcpy(serveraddr.sun_path,"./tcpserver");//服务器绑定套接字if(-1 == bind(sock_fd,(struct sockaddr *)&serveraddr,serveraddr_len)){perror("bind error");exit(-1);}//设置监听状态if(-1 == listen(sock_fd,5)){perror("listen error");exit(-1);}//阻塞等待客户端连接int accept_fd = 0;char buf[128] = {0};int nbytes = 0;int ret = 0;//提示信息printf("本地通信之TCP服务器启动!!!\n");while(true){   accept_fd = accept(sock_fd,(struct sockaddr *)&clientaddr,&clientaddr_len);if(-1 == accept_fd){perror("accept error");exit(-1);}//收发数据while(true){memset(buf,0,sizeof(buf));if(-1 == (nbytes = recv(accept_fd,buf,sizeof(buf),0))){perror("recv error");exit(-1);}else if(0 == nbytes){printf("客户端[%s]断开了连接\n",clientaddr.sun_path);break;}printf("客户端[%s]发来数据[%s]\n",clientaddr.sun_path,buf);//组装应答消息strcat(buf,"-------k");ret = send(accept_fd,buf,sizeof(buf),0);if(-1 == ret){perror("send error");exit(-1);}}close(accept_fd);}//关闭套接字close(sock_fd);return 0;}
  • 运行结果:
	本地通信之TCP服务器启动!!!客户端[./tcpclient]发来数据[hello]客户端[./tcpclient]发来数据[hi]客户端[./tcpclient]发来数据[I Love China!!!]
  • 特别注意:
  • strcpy(serveraddr.sun_path,"./tcpserver");tcpserver文件套接字文件
  • 如下所示:
	srwxrwxr-x 1 linux linux     0 1110 05:58 tcpserver
http://www.yayakq.cn/news/858705/

相关文章:

  • 申请域名之后如何做网站淮安网站seo
  • 免费微场景制作网站济南网站优化推广
  • 怎样做编辑发到网站成都app程序开发
  • 服装店网站模板单页面网站怎么做seo
  • 网站自己怎么建设网站关键词怎么优化
  • 西安买公司的网站建设重庆锅炉网站建设公司
  • 上传网站模板建站新冠咳嗽一般要咳多少天
  • 虚拟机做的网站怎么让外网访问不了python开发微信小程序教程
  • 做网站开发工资怎样做本地网站需要的软件
  • 可以做旅行行程的网站修改wordpress 的权限
  • 域名连接网站wordpress儿童主题
  • 万网网站建设购买过程网站一直做竞价么
  • 设计用哪些网站有哪些功能成品在线视频免费入口
  • 个人博客网站取名亚马逊平台的运营模式
  • 宝安做网站公司WordPress多站点恢复
  • 建立网站就是制作网页对吗厦门市保障性住房官网
  • 建设网站进行商品营销的重要性jsp网站开发的使用表格
  • 新手做网页用什么软件广州seo公司哪个比较好
  • 我想建立一个网站wordpress清理
  • 郑州的网站建设公司哪家好如何把网站提交到百度
  • 汽车网站设计dede网站地图样式修改
  • 马鞍山市网站建设公司河北云网站建设
  • 广东智慧团建注册登录入口太原seo培训
  • 查询网站2021网站你懂我意思正能量
  • 四川宜宾建设局官方网站整木全屋定制十大名牌
  • cad外包网站爱玖货源站
  • 天水有做网站的地方吗易趣网官网
  • 网站安全检测网站东莞建设网站官网登录
  • 怀柔营销型网站建设社团网站建设的功能定位
  • 那种软件可以做视频网站无锡有没有做网站的公司