问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用c语言实现Linux中的pushd+n功能

发布网友 发布时间:2022-04-20 17:19

我来回答

1个回答

热心网友 时间:2023-06-22 22:30

Socket通信创建步骤:
(1)通过socket()函数创建socket
(2)通过bind函数绑定socket于设备地址
(3)进行读写操作read/recv/recvfrom write/send/sendto
(4)close方法关闭套接字

例子如下:
test1.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(void)
{
//create socket
int fd = socket(AF_INET, SOCK_DGRAM, 0);
if(fd==-1)
{
perror("socket\n");
exit(-1);
}
printf("socket fd=%d\n",fd);

//build connection address
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(6666);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");

int r;
r = bind(fd,(struct sockaddr*)&addr,sizeof(addr));
if(r==-1)
{
perror("bind");
close(fd);
exit(-1);
}
printf("bind address successful!\n");
//accept or send message
char buf[255];
struct sockaddr_in from;
socklen_t len;
len = sizeof(from);
while(1)
{
r = recvfrom(fd,buf,sizeof(buf)-1,0,(struct sockaddr*)&from,&len);
if(r>0)
{
buf[r]=0;
printf("The message from %s is:%s\n",inet_ntoa(from.sin_addr),buf);
}
else
{
break;
}
}
//close socket
close(fd);
return 0;
}

test2.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(void)
{
//create socket
int fd = socket(AF_INET,SOCK_DGRAM,0);
if(fd==-1)
{
perror("socket");
exit(-1);
}
printf("create socket OK!\n");
//create an send address
struct sockaddr_in addr={};
addr.sin_family = AF_INET;
addr.sin_port = htons(6666);
addr.sin_addr.s_addr=inet_addr("127.0.0.1");
//send the message to the specify address
int r;
char buf[255];
while(1)
{
r = read(0,buf,sizeof(buf)-1);
if(r<=0)
break;
sendto(fd,buf,r,0,(struct sockaddr*)&addr,sizeof(addr));
}
//close socket
close(fd);
return 0;
}
先运行test1.c,然后运行test2.c,在test2.c运行后输入内容,在test1.c所在终端中就会显示信息
运行结果如下:追问运行结果可以截图给我看下吗

用c语言实现Linux中的pushd+n功能

(1)通过socket()函数创建socket (2)通过bind函数绑定socket于设备地址 (3)进行读写操作read/recv/recvfrom write/send/sendto (4)close方法关闭套接字 例子如下:test1.c include &lt;stdio.h&gt; include &lt;stdlib.h&gt; include &lt;unistd.h&gt; include &lt;netinet/in.h&gt; include &lt;arpa/inet.h&gt; int ...

用c语言实现linux中的pushd+n功能

int len = directorys.length; // 取得需要设置的工作路径 char* workDiretory = directorys[len - n]; directorys.push(workDiretorys); // 设置当前工作路径为需求中的路径 setWindowDirectory(workDirectory); // 设置历史纪录,写回文件 setDirectoryHistory(directorys); ...

用C语言实现shell中的 Pushd +n命令

int index = atoi(arg[0]);// 从临时文件读取使用过的工作路径 directorys = readDirectorys();int len = directorys.length;// 取得需要设置的工作路径 char* workDiretory = directorys[len - n];directorys.push(workDiretorys);// 设置当前工作路径为需求中的路径 setWindowDirectory(workDir...

Redhat linux常用的命令有哪些?

一. 启动,关机,登入,登出相关命令 &lt;login&gt; 登录 &lt;logout&gt; 登出 &lt;exit&gt; 登出 &lt;shutdown&gt; 停止系统 &lt;halt&gt; 停止系统 &lt;reboot&gt; 重启动 &lt;poweroff&gt; 切断电源 &lt;sync&gt; 把内存里的内容写入磁盘 &lt;lilo&gt; 安装lilo启动管理程序 &lt;grub&gt; 安装lilo启动管理程序 二. Shell相关命令 &lt;chsh&gt; 切换Shell &lt;history...

请问电脑在开始--运行--输入cmd回车后出现的命令行输入方式有什么用...

gcc 黑客通常用它来编译C语言写的文件 su 权限转换为指定使用者 telnet IP telnet连接对方主机(同win2K),当出现bash$时就说明连接成功。 ftp ftp连接上某服务器(同win2K) 附:批处理命令与变量1:for命令及变量 基本格式: FOR /参数 %variable IN (set) DO command [command_parameters] %variable:指定一个...

bat文件命令大全

例1:用edit编辑a.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。 批处理文件的内容为: 命令注释: @echo off 不显示后续命令行及当前命令行 dir c:\*.* &gt;a.txt 将c盘文件列表写入a.txt call c:\ucdos\ucdos.bat 调用...

求所有cmd命令含义及用法(包括net,ntsd,taskkill...)

1. ntsd 格式:c:&gt;ntsd -c q -p PID 只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。ntsd从2000开始就是系统自带的用户态调试工具,被调试器附着(attach)的进程会随调试器一起退出,所以可以用来在命令行下终止进程。使用ntsd自动就获得...

system函数具体功能是什么?

system函数具体功能是调用windows操作系统下的C语言应用。system函数需加头文件&lt;stdlib.h&gt;后方可调用。system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。例如:用 system("color 0A");其中color...

CMD常用命令大全

现在常用的DOS命令都有那些呀,还有它的主要作用是什么?请高手帮忙...

C:、&gt; (三)RD——删除子目录命令 1.功能:从指定的磁盘删除了目录。 2.类型:内部命令 3.格式:RD[盘符:][路径名][子目录名] 4.使用说明: (1)子目录在删除前必须是空的,也就是说需要先进入该子目录,使用DEL(删除文件的命令)将其子目录下的文件删空,然后再退回到上一级目录,用RD命令删除该了目录本身...

求1!+2!…+n!用c语言求 c语言while(n) c语言中\n是什么意思 c语言scanf啥意思 c语言2的n次方怎么输入 c语言int c语言null什么意思 c语言fun函数 c语言有什么用
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苏州一级建造师能买吗? 我是苏州2013一级建造师考生,9月15日最后一门考试把身份证忘在课桌上... 二级建造师 报名 现场确认些什么 会不会问你工作内容什么的,试探你是否... 根据我国《刑法》的规定,下列属于公共财产的是()。 苏州一级建造师报名时间是不是已经过了,要是没有赶上,今年还能有什么其 ... 盗取国家公共财产罪 我是苏州2013一级建造师考生,9月15日最后一场把身份证忘在考场了,我... 二级建造师网上报名已经通过'请问现场初审能找人代替吗我在苏州报名的... 什么是刑法中规定的公共财产,公民私人所有的财产 犯罪构成要件公私财物是什么? 西瓜苗一般长多长 Linux下的c语言UDP编程 西瓜原苗和嫁接苗的区别 西瓜苗的嫩头往上翘怎么回事 如何实现在Linux下创建服务程序 西瓜幼苗刚出芽要不要浇水,要怎么管理 linux C语言编程,socket实现的即使通讯系统 西瓜苗期病害图片大全叶子发黄是怎么回事 socket编程中为什么client端的可以不用bind函数绑... 请问西瓜苗咋回事?(如图) linux socket 怎么处理大量的数据 西瓜苗长这样这是什么原因 基于Linux的远程指令系统(使用udp而不是tcp) 想要让西瓜苗长得又快又好,都有哪些小技巧呢? linux下socket编程中 bind(sockfd,(struct sockadd... 这样的西瓜苗施不施肥? linux下的bind有什么作用 西瓜苗长了这么大可以施肥吗? linux网络编程bind使用出错 西瓜幼苗,死苗是什么情况? linux BIND 服务以及用户权限问题. 怎样查询linux系统调用函数 linux c编写udp程序的bind报错 linux下socket编程中close()函数?? linux socket 如何发现主机是否活着 周的意思是什么? “周”字到底如何写? “周”汉语拼音怎么写? 肖邦的练习曲相对较简单的是哪首? 肖邦钢琴曲最简单 肖邦练习曲集的作品简介 肖邦名曲及名曲简介 请提供肖邦练习曲的详细资料。 我要肖邦练习曲的资料 肖邦哪首练习曲及奏鸣曲最简单?急 肖邦一生所创作的27首练习曲中技术难度最高的是哪... 刚开始练肖邦练习曲,准备艺考用的。哪一首比较简... 肖邦有几首练习曲 肖邦 离别练习曲赏析及演奏要点 浅析肖邦练习曲No.7演奏技巧