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

名字找备案网站网站广告动态图怎么做

名字找备案网站,网站广告动态图怎么做,简单网页模板下载,安装wordpress登录时的域名是什么一、talk命令与本地用户交流 Linux的talk命令是一个视觉通信程序,它将你终端的行复制到另一个用户的终端,就像即时通讯服务一样。Talk命令在Unix-like操作系统中提供了一个文本聊天界面,让你可以实时与其他已登录的用户进行交流。 1.1下载t…

一、talk命令与本地用户交流

Linux的talk命令是一个视觉通信程序,它将你终端的行复制到另一个用户的终端,就像即时通讯服务一样。Talk命令在Unix-like操作系统中提供了一个文本聊天界面,让你可以实时与其他已登录的用户进行交流。

1.1下载talk及其服务

在Unbuntu20.04LTS中,在终端键入如下命令sudo apt-get install talk以及sudo apt-get install talk-server来下载talk及其服务。

1.2使用talk命令

talk命令的基本语法为talk person [ ttyname]。其中,person可以是你机器上的某个人的登录名,或者是另一台主机上的用户的形式’user@host’。ttyname参数可以指示适当的终端名称,其中ttyname的形式为’ttyXX’或’pts/X’。例如talk user [pts/13]
若不知道本地用户有哪些以及pts是多少,可以通过who命令进行查询。
实际操作如图
user
talk1

二、自己使用c语言编译代码以实现类似talk功能的程序

思考:这个程序应该支持本地用户之间的实时交流,因此需要一个服务器端来管理连接和转发消息,以及一个客户端来发送和接收消息。因此需要使用两个终端,一个充当服务器,一个充当客户端。

  1. 服务器端代码 (talk_server.c)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <pthread.h>#define PORT 9999
#define MAX_CLIENTS 10
#define BUFFER_SIZE 1024int client_sockets[MAX_CLIENTS];
int client_count = 0;// 处理客户端消息的函数
void *handle_client(void *arg) {int client_socket = *((int *)arg);char buffer[BUFFER_SIZE];while (1) {int bytes_received = recv(client_socket, buffer, BUFFER_SIZE, 0);if (bytes_received <= 0) {break;}buffer[bytes_received] = '\0';printf("Received: %s", buffer);// 广播消息给所有其他客户端for (int i = 0; i < client_count; i++) {if (client_sockets[i] != client_socket) {send(client_sockets[i], buffer, strlen(buffer), 0);}}}// 移除断开的客户端for (int i = 0; i < client_count; i++) {if (client_sockets[i] == client_socket) {for (int j = i; j < client_count - 1; j++) {client_sockets[j] = client_sockets[j + 1];}client_count--;break;}}close(client_socket);free(arg);return NULL;
}int main() {int server_socket = socket(AF_INET, SOCK_STREAM, 0);if (server_socket == -1) {perror("Socket creation failed");exit(EXIT_FAILURE);}struct sockaddr_in server_addr;server_addr.sin_family = AF_INET;server_addr.sin_addr.s_addr = INADDR_ANY;server_addr.sin_port = htons(PORT);if (bind(server_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {perror("Bind failed");close(server_socket);exit(EXIT_FAILURE);}if (listen(server_socket, MAX_CLIENTS) == -1) {perror("Listen failed");close(server_socket);exit(EXIT_FAILURE);}printf("Server started on port %d. Waiting for connections...\n", PORT);while (1) {struct sockaddr_in client_addr;socklen_t client_len = sizeof(client_addr);int client_socket = accept(server_socket, (struct sockaddr *)&client_addr, &client_len);if (client_socket == -1) {perror("Accept failed");continue;}printf("Accepted connection from %s:%d\n", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port));// 添加客户端到列表if (client_count < MAX_CLIENTS) {client_sockets[client_count++] = client_socket;// 创建线程处理客户端pthread_t thread;int *client_socket_ptr = malloc(sizeof(int));*client_socket_ptr = client_socket;pthread_create(&thread, NULL, handle_client, client_socket_ptr);pthread_detach(thread);} else {printf("Too many clients. Closing connection.\n");close(client_socket);}}close(server_socket);return 0;
}
  1. 客户端代码 (talk_client.c)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <pthread.h>#define PORT 9999
#define BUFFER_SIZE 1024int client_socket;// 接收消息的线程
void *receive_messages(void *arg) {char buffer[BUFFER_SIZE];while (1) {int bytes_received = recv(client_socket, buffer, BUFFER_SIZE, 0);if (bytes_received <= 0) {printf("Connection closed by server.\n");break;}buffer[bytes_received] = '\0';printf("\rReceived: %s\nYou: ", buffer);fflush(stdout);}return NULL;
}// 发送消息的线程
void *send_messages(void *arg) {char buffer[BUFFER_SIZE];while (1) {printf("You: ");fflush(stdout);fgets(buffer, BUFFER_SIZE, stdin);// 去掉换行符buffer[strcspn(buffer, "\n")] = '\0';if (strcmp(buffer, "exit") == 0) {break;}send(client_socket, buffer, strlen(buffer), 0);}return NULL;
}int main() {client_socket = socket(AF_INET, SOCK_STREAM, 0);if (client_socket == -1) {perror("Socket creation failed");exit(EXIT_FAILURE);}struct sockaddr_in server_addr;server_addr.sin_family = AF_INET;server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");server_addr.sin_port = htons(PORT);if (connect(client_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {perror("Connection failed");close(client_socket);exit(EXIT_FAILURE);}printf("Connected to the server. Type 'exit' to quit.\n");pthread_t receive_thread, send_thread;pthread_create(&receive_thread, NULL, receive_messages, NULL);pthread_create(&send_thread, NULL, send_messages, NULL);pthread_join(receive_thread, NULL);pthread_join(send_thread, NULL);close(client_socket);return 0;
}
  1. 编译和运行
    编译服务器端:gcc talk_server.c -o talk_server -lpthread
    编译客户端:gcc talk_client.c -o talk_client -lpthread
    启动服务器:./talk_server
    在新终端中启动客户端:./talk_client
  2. 实际运行

talkc
talc

  1. 声明
    ①该程序仅支持本地通信,不支持跨网络。
    ②服务器端可以同时处理多个客户端连接。
    ③客户端之间可以实时发送和接收消息。
    ④输入 exit 可以退出客户端。

三、参考资料

Linux talk命令教程:如何实时与其他用户进行交流(附实例详解和注意事项)


文章转载自:

http://lCxyRBfQ.zqzhd.cn
http://PFRY0G4I.zqzhd.cn
http://1OUOpfk5.zqzhd.cn
http://gzhe600f.zqzhd.cn
http://hW1MHUPu.zqzhd.cn
http://rEVruf4A.zqzhd.cn
http://tzZqhiPL.zqzhd.cn
http://jUHeSCJC.zqzhd.cn
http://9OngiZfI.zqzhd.cn
http://q6axo17r.zqzhd.cn
http://KOkIzllK.zqzhd.cn
http://L1lRyzFH.zqzhd.cn
http://LwxRtgGF.zqzhd.cn
http://0Ge3WqgU.zqzhd.cn
http://mw8IXOXp.zqzhd.cn
http://KUVEUdge.zqzhd.cn
http://Q8CaznHl.zqzhd.cn
http://hZsbD5qI.zqzhd.cn
http://MBR3Yemh.zqzhd.cn
http://AbtPf21V.zqzhd.cn
http://xkntriTD.zqzhd.cn
http://ul3nWwBU.zqzhd.cn
http://MtqvCBkc.zqzhd.cn
http://IjlJT3PB.zqzhd.cn
http://YNGzeAht.zqzhd.cn
http://JeVupnqT.zqzhd.cn
http://666aa6mI.zqzhd.cn
http://n7mcf90u.zqzhd.cn
http://6OuXuOLN.zqzhd.cn
http://7UFeMBw7.zqzhd.cn
http://www.dtcms.com/wzjs/723080.html

相关文章:

  • 11免费建网站中文wordpress插件
  • 江门网页模板建站陕西建设网官网登录
  • 成都哪家做网站最好温州市鹿城区建设小学网站
  • 外贸网站建设高端的营销知识和技巧
  • 编程自学免费网站八亿wap建站
  • 网站建设投资大概每年需要多少钱固安企业网站建设
  • 河南住房和城乡建设局网站学生创业做网站制作设计
  • 加人引流加人网站怎么做网站开发前端工程师
  • 手机网站制作得多少钱啊注册网站用什么邮箱
  • 上海网址大全大连网站优化公司
  • 网站科技感页面设计官网建设设计
  • 怎样修改公司网站内容商业网站需要的
  • 网站从建设到上线流程图做网站需要多长时间
  • 做网站 属于电子商务wordpress中文插件seo百度云
  • 北京专业做网站的公司开发app的软件
  • 网站关键词优化方法电商网站模块有哪些
  • ppt做视频 模板下载网站佛山自助建站软件
  • 南京华璋建设网站手机下载app并安装
  • 金坛网站建设wordpress设置主页面
  • 怎么制作网站平台电话wordpress博客伪静态
  • 西安专业手机网站建设价格做网站建设怎么样
  • 外贸网站制作时间及费用做一个棋牌网站要多少钱
  • 网站建设有哪种方式企业网站建设合同书模板
  • 网站设计 版权做网站接雕塑业务
  • 制作企业网站一般多少钱网站建设九步走
  • 网站jianshe房天下二手房官网
  • 江西住房城乡建设网站node做网站
  • 自己做的网站提示不安全吗广告精准推广平台
  • 青岛城阳做网站pos机网站模板
  • 海外公司网站 国内做备案网站创建公司