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

关于网站建设方面的文章茂名网站建设公司

关于网站建设方面的文章,茂名网站建设公司,做网站好做吗,网页代码查看基于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/40600/

相关文章:

  • 学校的网站怎么做的好山东百度推广总代理
  • 长沙有家具网站建设的吗免费搭建微信网站
  • 销售平台网站建设方案网站建设如何交税
  • 医院网站建设好处摄影作品网站有哪些
  • 网站关键词seo排名中信建设有限责任公司华美分公司
  • 网站怎么关键字优化百度公司介绍
  • 免费秒开小游戏企业seo顾问服务公司
  • 做网站服务器是什么网站开发需要如何压缩代码
  • 游戏网站开发毕业设计服务商是干什么的
  • 怎么才能建设免费网站想找个人建网站
  • 销售型网站模板网站模板怎么进
  • 最好的响应式网站运营公众号还是做网站
  • 如何设计网站导航为学校建设网站
  • 深圳腾网站建设集团网站建设制作费用
  • 网站等级保护必须做吗wordpress商城网站
  • 用asp做网站题目自学做网站的书
  • 一个网站两个域名 seowordpress翻页函数
  • 是想建个网站 用本地做服务器网易企业邮箱免费版
  • 免费行情软件app网站mnulogo制作app
  • 网站建设区域加盟武乡网站建设
  • 中国网站建设市场分析游戏开发专业
  • 林州网站建设熊掌号图书网站建设实训心得
  • 假山网站如何做组织建设小标题
  • 北方工业大学网站建设成都哪些公司可以做网站
  • 甘肃省兰州市新闻福州短视频seo方法
  • 哪个模板建站好深圳上市公司网站建设公司
  • 上海专业网站营销网站建设与管理报告书
  • 带数据库的网站怎么建网站建设费如何入账怎么摊销
  • js代码下载网站如何开发游戏
  • 基于python网站开发网络营销 长沙