上一节创建socket时,仅指定了协议类型以及服务类型,但是没有指定具体的socket地址。

bind函数含义如词义,给上述创建的套接字socket绑定一个socket地址。

比喻如下:我们创建了socket(安装电话机)以后,需要进行socket命名(应该去中国联通申请一个电话号码,并将该号码和电话机进行绑定)。

bind函数的Linux头文件以及函数定义如下:

#include

int bind(int sockfd, const stuct sockaddr *my_addr, socklen_t addrlen);

bind函数参数以及返回值如下:

/**

* socket命名

*

* @param sockfd socket文件描述符,上节socket函数返回的值

* @param my_addr socket地址

* @param addrlen socket地址的长度

* @return 函数执行成功返回0,失败返回-1

*/

int bind(int sockfd, const stuct sockaddr *my_addr, socklen_t addrlen);

结合之前socket地址初始化方法,写个程序,完成命名socket。

#include

#include // exit

#include

#include // sockaddr_in

#include

int main(int argc, char *argv[])

{

const char *server_ip = "127.0.0.1"; // IP地址字符串

int server_port = 0x1234;

int server_socket;

server_socket = socket(PF_INET, SOCK_STREAM, 0);

if (server_socket == -1) {

perror("socket create error");

exit(1);

}

printf("socket is %d\n", server_socket);

struct sockaddr_in address;

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

address.sin_family = AF_INET;

address.sin_port = htons(server_port);

address.sin_addr.s_addr = inet_addr(server_ip);

if (bind(server_socket, (struct sockaddr*)&address, sizeof(address)) == -1) {

perror("bind error");

exit(1);

}

printf("bind ok\n");

return 0;

}

第13行创建一个socket。

第20~24行初始化一个socket地址,和之前相同。

第26行利用bind函数完成命名socket。

右侧打开bind_test.c文件,试添加bind函数,并编译测试。

linux blind函数,Linux网络编程入门相关推荐

  1. Linux网络编程 入门

    Linux网络编程入门 (转载) (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍 客户端和服务端          网络程序和普通的程序有一个最大的区别是网络程序是由两个 ...

  2. 【网络编程入门】使用socket在Linux下实现即时通信软件

    使用socket在Linux下实现即时通信软件 在前一篇文章中讲到了如何使用winsock:[网络编程入门]在C++中使用Windows TCP Sockets,也算是勉强入门了吧,接下来自己写一下在 ...

  3. linux c语言 ppt,linux操作系统下c语言编程入门.ppt

    linux操作系统下c语言编程入门.ppt Linux操作系统下C语言编程入门 CNT Linux操作系统简介基础知识进程介绍文件操作时间概念消息管理线程操作网络编程Linux下C开发工具介绍 一 L ...

  4. linux操作系统下 c语言编程入门

    linux操作系统下 c语言编程入门 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门 ...

  5. linux操作系统下c语言编程入门

    linux操作系统下c语言编程入门  整理编写:007xiong  原文:Hoyt等 (一)目录介绍 1)Linux程序设计入门--基础知识  2)Linux程序设计入门--进程介绍  3)Linux ...

  6. 【转贴】linux操作系统下c语言编程入门

    [转贴]linux操作系统下c语言编程入门 发信人: Lerry (驴是的念来过倒·杏红等头墙上爬), 信区: Linux 标 题: linux操作系统下c语言编程入门 发信站: 哈工大紫丁香 (Fr ...

  7. linux Shell(脚本)编程入门实例讲解详解

    linux Shell(脚本)编程入门实例讲解详解 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集, ...

  8. TCP原理,Socket与网络编程入门

    TCP原理,Socket与网络编程入门 开篇 从互联网的诞生以来,网络程序逐渐普及.计算机网络将各个计算机连接到一起使它们可以通信.在现代,网络已成为我们十分重要的一部分.这次不搞些费脑子的东西,就让 ...

  9. 网络——Windows下的网络编程入门

    作者:小 琛 欢迎转载,请标明出处 引言:之前关于网络编程的博文都是基于Linux环境下,而因为后续工作的原因,开发环境为Windows故而学习该内容.实际学习中发现,整个编程思路和流程并没有很大差别 ...

最新文章

  1. ExtJS实现完美Grid(2)--分组统计
  2. 在WAS中得到OracleConnection
  3. Coding 初级教程(二)——上传已有项目
  4. 构建高可用服务器之 Keepalive参数详解
  5. java图像处理之图像融合
  6. recv, recvfrom, recvmsg
  7. windows7系统如何设置远程连接
  8. qt html导pdf 页眉,如何使用wkhtmltopdf unpatched qt在每个页面上添加页眉和页脚?
  9. linux 备份mysql_linux下备份MYSQL数据库的方法
  10. SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)...
  11. Redis从安装到简单使用(windows)
  12. 如何取json对象中的数据
  13. 网络安全——流量分析
  14. 英国进口FTDI FT232RL 串口芯片真假大揭秘
  15. 给重回正路的大二学生:戒急戒躁中前行
  16. Linux中的su 和su -
  17. 笔记12 SQL优化
  18. 图片信息查看软件 ExifTool GUI
  19. 小红书怎么推广引流?怎么样在小红书上引流?
  20. my name is van

热门文章

  1. 安装完MAVEN后输入mvn -v, 提示不是内部命令的问题
  2. 无法访问部署在linux上的Tomcat服务器解决方案
  3. JasperMES.cn JasperMES.com.cn 我的MES网站
  4. canvas图像保存
  5. xmu 1254.异或求和
  6. DataFormatString格式化字符串的总结
  7. sqlserver的@@IDENTITY在oracle中怎样实现
  8. Java开发人员必备的7大技能,每一个都必不可少
  9. Java程序员总结出必看的初级~高级技术面试题
  10. skywalking告警相关配置