socket用法linux,linux socket编程,要用到哪些函数,和用法介绍?_Linux_天涯问答_天涯社区...

b10740ea333b5c4d57bdf77eb84a96a4.png

4、获得地址信息

/* 来源: http://www.jfox.info/c/a/ic/18071a.html */

#include 

#include  /* for strncpy */

#include 

#include 

#include 

#include 

#include 

int

main()

{

int fd;

struct ifreq ifr;

fd = socket(AF_INET, SOCK_DGRAM, 0);

/* I want to get an IPv4 IP address */

ifr.ifr_addr.sa_family = AF_INET;

/* I want IP address attached to "eth0" */

strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1);

ioctl(fd, SIOCGIFADDR, &ifr);

close(fd);

/* display result */

printf("%s\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));

return 0;

}

5、获得地址信息的错误处理 #include 

/* 来源: http://www.jfox.info/c/a/ic/18071a.html */

#include 

#include 

#include 

int

main()

{

char *hostname = "localhost";

struct addrinfo hints, *res;

struct in_addr addr;

int err;

memset(&hints, 0, sizeof(hints));

hints.ai_socktype = SOCK_STREAM;

hints.ai_family = AF_INET;

if ((err = getaddrinfo(hostname, NULL, &hints, &res)) != 0) {

printf("error %d\n", err);

return 1;

}

addr.s_addr = ((struct sockaddr_in *)(res->ai_addr))->sin_addr.s_addr;

printf("ip address : %s\n", inet_ntoa(addr));

freeaddrinfo(res);

return 0;

}

6、创建socket地址

/* 来源: http://www.jfox.info/c/a/ic/18071a.html */

#include 

#include 

#include 

#include 

int

main()

{

char *hostname = "localhost";

char *service = "80";

struct addrinfo hints, *res;

int err;

int sock;

memset(&hints, 0, sizeof(hints));

hints.ai_socktype = SOCK_STREAM;

hints.ai_family = AF_INET;

if ((err = getaddrinfo(hostname, service, &hints, &res)) != 0) {

printf("error %d : %s\n", err, gai_strerror(err));

return 1;

}

sock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);

if (sock 

perror("socket");

return 1;

}

if (connect(sock, res->ai_addr, res->ai_addrlen) != 0) {

perror("connect");

return 1;

}

freeaddrinfo(res);

return 0;

}

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出 RPC - 浅出篇+深入篇

摘自: http://blog.csdn.net/mindfloating/article/details/39473807 近几年的项目中,服务化和微服务化渐渐成为中大型分布式系统架构的主流方式,而 RPC 在其中扮演着关键的作用。在平时的日常开发中我们都在隐式或显式的使用 RPC,一些刚入行…

[iPhone开发]UIWebview 嵌入 UITableview

UIWebview 嵌入UITableview, 将UIWebview 加入到UITableview的cell里面,而且,将UIWebview 的高度设为内容的高度,内容的高度,可以当UIWebview 载入完成之后,从UIWebview 的子view中找到scrollView,这个scro…

把A表中的a字段和b字段数据 复制到B表中的aa字段和bb字段

insert into tab2 (column1,column2) select column1,column2 from tab1 转载于:https://www.cnblogs.com/jthb/p/3423175.html

linux如何备份网站,linux怎么备份网站

云服务器备份 CSBS云服务器备份(Cloud Server Backup Service)为云服务器下所有云硬盘创建一致性在线备份,无需关机。针对病毒入侵、人为误删除、软硬件故障等场景,可将数据恢复到任意备份点¥0.268¥0.2/GB/月通过自定义脚本实现SA…

Docker热点文章链接 - 持续更新

docker技术的不断更新让我只能不停奔跑:Docker官方网站Chris Richardson 微服务系列DaoCloud博客 2016/6/23 (周四) 12:48 DockerCon 2016 D1|自身集成编排,Docker 意欲清场?DockerCon 2016 D2|剑指商业化Docker 1.11&…

图灵访谈系列之一:陈世欣谈产品经理与社区

原文链接地址:点击打开链接 10月20日,产品经理社区PMCamp、极客社区TopGeek的发起者和组织者陈世欣先生来图灵做客,畅谈对产品经理成长和社区发展的看法。以下为图灵社区整理的相关谈话内容。 人物简介: 陈世欣 StingChen产品经理…

C#中Hashtable的用法

在封装题库的时候,发现传实体很受限制,每个题型都需要建立不同的实体,这 样封装的时候就需要将实体一起封装,而且添加新题型的也不够灵活,这样就想到了 HashTable,让所有的题型都使用HashTable来传参&#…

kdbg调试linux汇编,Ubuntu 16.04安装Kdbg替代Insight实现汇编的调试

ibatis XML标签的含义selectKey: 有3个主要的属性: 1)resultClass:返回的主键的数据类型,跟sqlMap中的数据类型一致: 2)type:表示主键在insert之前或之后生成(取决于 ...raspberry 烧写镜像到SD卡刚开始接触树莓派,需要烧写系统镜像到SD卡,网上找了些资料,记录于此. ra…

Jenkins 使用 maven 出现C:\Windows\system32\config\systemprofile的解决

jenkins 使用 maven 出现 C:\Windows\system32\config\systemprofile 的原因是 Jenkins 服务启动的账号使用了系统的账号,在服务里改成具体的桌面用户账号即可。 If your command runs fine on Win command prompt as user X, then you should run Jenkins with the…

mediawiki禁止注册

只允许管理员代为注册,在LocalSettings.php中增加: $wgGroupPermissions array(); $wgGroupPermissions[’*’ ][’createaccount’] false; $wgGroupPermissions[’*’ ][’read’] true; $wgGroupPermissions[’*’ ][’edit’] false; $wgGroupPermissions[’…

在Linux下用源码编译安装apache2

Linux下安装一个软件,最好去看下它的官方guide,apache2.4的安装安装guide 0. installation guide http://httpd.apache.org/docs/2.4/install.html 然后是下载源码 1. download http2.4, 下载地址 下载好了以后,把它解压到一个路…

c语言第十五周答案,C语言考前练习试题及答案

C语言考前练习试题及答案天行健,君子以自強不息,地勢坤,君子以厚德载物。以下是小编为大家搜索整理的C语言考前练习试题及答案,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!一、选择题(每小题1分&#xff0…

表格存储技术方案实践及客户案例分享

表格存储是一款2014年10月份正式商业化的NoSQL数据存储服务,在商业化之前,早在2010年就在阿里云内部开始使用,云邮箱和云OS都是表格存储最早的一批用户。到目前,无论是在阿里集团内部还是在公共云环境上,在移动社交、金…

delphi 打开资源管理器并定位到指定目录下的文件

可以与 Explorer.exe 一起使用的命令行选项有:/n、/e、/root(加上一个对象)和 /select(加上一个对象)。 usesShellAPI;ShellExecute(Handle,nil,Explorer.exe,PChar(Format(/e,/select,%s, [GLogger.CurrFileName])),n…

psp前景与范围文档

前景与范围文档 文档状态: [ ]草稿 [ ]正式发布 [√]正在修改 当前版本版本1作者XXX,XX完成日期2013-11-14 1.业务需求 1.1应用背景 在规定时间内不能完成任务的情况时有发生,这对整个项目的研发带来了很大的困扰,阻碍了项目的进展速度.对于如何去分配给一个开发人员的任务量…

数字编码电位器c语言,数字电位器——x9c104

一些传统的电子设备是通过改变电位器的电阻来实现调整,比如灯的亮度、电机的转速等。如果想对这种设备进行智能改造但不大幅度改变设备内部的电器结构,我们需要电位器的电阻可通过单片机或微机进行控制,数字电位器就是这类设备。“我也是在项…

13.  Roman to Integer

2019独角兽企业重金招聘Python工程师标准>>> 见12转载于:https://my.oschina.net/datacube/blog/702856

SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式)...

SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式) 注:此实例无需添加数据控件,避免了一些繁琐的代码 实现效果如下: 读取数据和图片,并以每行…

Android 常用权限

添加WiFi以及访问网络的权限&#xff1a;<uses-permission android:name"android.permission.CHANGE_NETWORK_STATE" ></uses-permission><uses-permission android:name"android.permission.CHANGE_WIFI_STATE" ></uses-permission&…

c语言离散卷积编程,数电实验一 离散卷积的C语言编程.ppt

数电实验一 离散卷积的C语言编程.ppt实验一 离散卷积的C语言编程实验,DSP实验室,实验性质,综合设计性实验,实验目的,1 了解和认识常用的各种信号&#xff1b; 2 掌握卷积的定义和计算方法&#xff1b; 3 掌握在计算机中生成以及绘制信号序列图的方法。,实验原理,离散时间系统中…