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

vps 网站能打开做推广效果哪个网站好

vps 网站能打开,做推广效果哪个网站好,wordpress分页导航代码,全国软件公司排名1、简介 Socket,中文常称为“套接字”,是 UNIX 操作系统中引入的一种通信抽象接口,用于支持不同进程之间,特别是不同主机之间的通信。在 UNIX 哲学中,“一切皆文件”,包括网络通信也不例外。Socket 就是这种…

1、简介

  Socket,中文常称为“套接字”,是 UNIX 操作系统中引入的一种通信抽象接口,用于支持不同进程之间,特别是不同主机之间的通信。在 UNIX 哲学中,“一切皆文件”,包括网络通信也不例外。Socket 就是这种设计理念的延伸 —— 它被视为一种“特殊的文件”,可以通过经典的打开(open)→ 读写(read/write)→ 关闭(close) 的方式进行操作。

🧱 Socket 的起源与设计初衷

  Socket 接口最早于 1983 年发布的 4.2BSD(Berkeley UNIX) 中引入,其主要目标是提供一套通用的编程接口来支持 TCP/IP 网络协议栈,以实现不同主机之间的通信。它统一了网络通信的编程模型,使程序员能够像操作本地文件一样操作网络连接,从而大大降低了开发网络应用的门槛。

🖧 UNIX 域 Socket 的扩展用途

  随着 socket 接口的普及与发展,系统设计者进一步扩展了其用途,推出了 UNIX 域 socket(也称为本地域 socket,地址族为 AF_UNIXAF_LOCAL),用于同一主机内进程之间的通信(IPC)。UNIX 域 socket 有以下特点:

  • 不经过 TCP/IP 协议栈,不使用网卡;
  • 通信地址使用文件系统路径(如 /tmp/mysock);
  • 性能高、开销小,适合高频本地通信场景。

📌 值得注意的是,UNIX 域 socket 并非最初 socket 设计的目的,它是在 socket 接口成功应用于网络通信之后,对接口机制的本地扩展,属于“附加增强功能”

🔁 Socket 与进程通信的关系

跨主机通信(网络通信)

  • 使用网络 socket(AF_INET, AF_INET6);
  • 应用场景:Web 服务、分布式系统、远程调用等;
  • 通信通过 IP 地址和端口,走 TCP/UDP 协议。

同主机进程通信(本地 IPC)

  • 使用 UNIX 域 socket(AF_UNIX);
  • 应用场景:nginx 与 php-fpm、MySQL 客户端与本地数据库通信;
  • 不走网络协议栈,效率更高。

2、不同主机间的通信

下面这篇文章,详细介绍了 Linux 下的 socket 网络通信。本篇文章这里不再赘述。

Linux Socket 编程入门——浅显易懂

3、相同主机不同进程间通信

3.1 服务端

// unix_server.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <unistd.h>#define SOCKET_PATH "/tmp/unix_socket_example"int main() {int server_fd, client_fd;struct sockaddr_un addr;char buffer[128];// 创建 socketserver_fd = socket(AF_UNIX, SOCK_STREAM, 0);if (server_fd < 0) {perror("socket");exit(EXIT_FAILURE);}// 删除旧 socket 文件(如果存在)unlink(SOCKET_PATH);// 设置地址结构memset(&addr, 0, sizeof(struct sockaddr_un));addr.sun_family = AF_UNIX;strncpy(addr.sun_path, SOCKET_PATH, sizeof(addr.sun_path) - 1);// 绑定if (bind(server_fd, (struct sockaddr *)&addr, sizeof(struct sockaddr_un)) < 0) {perror("bind");close(server_fd);exit(EXIT_FAILURE);}// 监听if (listen(server_fd, 5) < 0) {perror("listen");close(server_fd);exit(EXIT_FAILURE);}printf("Server waiting for connection...\n");// 接受连接client_fd = accept(server_fd, NULL, NULL);if (client_fd < 0) {perror("accept");close(server_fd);exit(EXIT_FAILURE);}// 接收数据ssize_t n = read(client_fd, buffer, sizeof(buffer) - 1);if (n > 0) {buffer[n] = '\0';printf("Received from client: %s\n", buffer);}// 发送响应const char *reply = "Hello from server!";write(client_fd, reply, strlen(reply));// 清理close(client_fd);close(server_fd);unlink(SOCKET_PATH);return 0;
}

3.2 客户端

// unix_client.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <unistd.h>#define SOCKET_PATH "/tmp/unix_socket_example"int main() {int sockfd;struct sockaddr_un addr;char buffer[128];// 创建 socketsockfd = socket(AF_UNIX, SOCK_STREAM, 0);if (sockfd < 0) {perror("socket");exit(EXIT_FAILURE);}// 设置地址结构memset(&addr, 0, sizeof(struct sockaddr_un));addr.sun_family = AF_UNIX;strncpy(addr.sun_path, SOCKET_PATH, sizeof(addr.sun_path) - 1);// 连接到服务器if (connect(sockfd, (struct sockaddr *)&addr, sizeof(struct sockaddr_un)) < 0) {perror("connect");close(sockfd);exit(EXIT_FAILURE);}// 发送数据const char *msg = "Hello from client!";write(sockfd, msg, strlen(msg));// 接收回应ssize_t n = read(sockfd, buffer, sizeof(buffer) - 1);if (n > 0) {buffer[n] = '\0';printf("Received from server: %s\n", buffer);}close(sockfd);return 0;
}

编译:

gcc unix_server.c -o server
gcc unix_client.c -o client

3.3 运行结果

服务端:

liangjie@liangjie-virtual-machine:~/Desktop/cfp$ ./server
Server waiting for connection...
Received from client: Hello from client!

客户端:

liangjie@liangjie-virtual-machine:~/Desktop/cfp$ ./client 
Received from server: Hello from server!

文章转载自:

http://nXSKvHQA.Lwhsp.cn
http://GKfa7nFq.Lwhsp.cn
http://H5VTnlKf.Lwhsp.cn
http://sJiITkH9.Lwhsp.cn
http://YBNymzge.Lwhsp.cn
http://0ShHDI0g.Lwhsp.cn
http://O1IfZ7d2.Lwhsp.cn
http://cWSadmdQ.Lwhsp.cn
http://NtwYYnK3.Lwhsp.cn
http://lQkRsW0l.Lwhsp.cn
http://NIGwVVVy.Lwhsp.cn
http://qToh4hQ0.Lwhsp.cn
http://jWw1aOVQ.Lwhsp.cn
http://npBmhhNp.Lwhsp.cn
http://c8QurXOb.Lwhsp.cn
http://qI2naTFB.Lwhsp.cn
http://QV0vutLP.Lwhsp.cn
http://IBfL61TJ.Lwhsp.cn
http://ag2GGUG7.Lwhsp.cn
http://2DCTovIY.Lwhsp.cn
http://czsYLHzy.Lwhsp.cn
http://IgsU9xKp.Lwhsp.cn
http://vwY0Nr3v.Lwhsp.cn
http://N4Xl2hZp.Lwhsp.cn
http://s2h2Doua.Lwhsp.cn
http://vdLhNOdN.Lwhsp.cn
http://2EYoRzgi.Lwhsp.cn
http://5c6iOxGe.Lwhsp.cn
http://NR2TocQ5.Lwhsp.cn
http://biONQKiE.Lwhsp.cn
http://www.dtcms.com/wzjs/756507.html

相关文章:

  • 广州seo网站排名广州网站设计素材
  • 专门做隐形眼镜的网站wordpress获取站点副标题
  • 佛山做网站业务工资wordpress 关闭更新警告
  • 想花钱做网站怎么做app推广
  • 个人网站类型郑州网站建设蝶动
  • 网站建设丨找王科杰上词快低价网站建设行业现状
  • 萍乡土建设计网站高端访问
  • 广州网站推广平台鲜花网站开发与设计
  • 凡科网做网站好吗徐州建设工程交易网张周
  • 机关 网站 建设方案360浏览器下载
  • wordpress设置标题大小百度搜索优化怎么做
  • 网站建设开发综合实训报告网站接入银联支付怎么做
  • 网站后台管理是做一些什么WordPress验证问题
  • 网站推荐几个互联网网站名字
  • 外贸soho做网站怎么做网页模板之家免费下载
  • 个人网站页面设计作品商场大型话题活动策划网站
  • 高端品牌网站建设有哪些58.搜房等网站怎么做效果才好
  • 自家宽带怎么建设网站莱芜都市网二手车租车
  • 前端开发可以做网站运营吗net网站开发技术方案
  • 微网站开发框架南通专业网站建设报价
  • 如何做logo模板下载网站那里有制作网站企业
  • 怎么做自己的淘宝客推广网站家具企业网站建设
  • 站酷网官网入口wordpress crawling
  • 靖江网站建设公司开源网
  • 最早做弹幕的网站自己干电商如何下手
  • 网站添加漂浮二维码怎么做网站建设的课件
  • 网站设计网络推广关键词淮安做网站.卓越凯欣
  • 查企业信息怎么查网站优化流程图
  • 百元便宜建站东莞网站程序
  • 一个人做网站原型郑州百度公司地址