Linux下socket编程实例

发表于:2014-4-24 10:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:navno1    来源:51Testing软件测试网采编

  一、基本socket函数
  Linux系统是通过提供套接字(socket)来进行网络编程的。网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符。socket也有一个类似于打
  开文件的函数:socket(),调用socket(),该函数返回一个整型的socket的描述符,随后的连接建立、数据传输等操作也都是通过该socket实现。
  1、socket函数
  syntax:
  int socket(int domain, int type, int protocol);
  功能说明:
  调用成功,返回socket文件描述符;失败,返回-1,并设置errno
  参数说明:
  domain指明所使用的协议族,通常为PF_INET,表示TCP/IP协议;
  type参数指定socket的类型,基本上有三种:数据流套接字、数据报套接字、原始套接字
  protocol通常赋值"0"。
  两个网络程序之间的一个网络连接包括五种信息:通信协议、本地协议地址、本地主机端口、远端主机地址和远端协议端口。socket数据结构中包含这五种信息。
  2、bind函数
  syntax:
  int bind(int sock_fd,struct sockaddr_in *my_addr, int addrlen);
  功能说明:
  将套接字和指定的端口相连。成功返回0,否则,返回-1,并置errno.
  参数说明:
  sock_fd是调用socket函数返回值,
  my_addr是一个指向包含有本机IP地址及端口号等信息的sockaddr类型的指针;
  struct sockaddr_in结构类型是用来保存socket信息的:
struct sockaddr_in {
short int sin_family;
unsigned short int sin_port;
struct in_addr sin_addr;
unsigned char sin_zero[8];
};
  addrlen为sockaddr的长度。
  3、connect函数
  syntax:
  int connect(int sock_fd, struct sockaddr *serv_addr,int addrlen);
  功能说明:
  客户端发送服务请求。成功返回0,否则返回-1,并置errno。
  参数说明:
  sock_fd 是socket函数返回的socket描述符;serv_addr是包含远端主机IP地址和端口号的指针;addrlen是结构sockaddr_in的长度。
  4、listen函数
  syntax:
  int listen(int sock_fd, int backlog);
  功能说明:
  等待指定的端口的出现客户端连接。调用成功返回0,否则,返回-1,并置errno.
  参数说明:
  sock_fd 是socket()函数返回值;
  backlog指定在请求队列中允许的最大请求数
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号