没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
4页
前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进程,也是可以是通过网络连接起来的不同计算机上的进程。通常我们使用socket进行网络编程,这里将会简单地讲述如何使用socket进行简单的网络编程。 一、什么是socket socket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发工作既可以在本地单机上进行,也可以跨网络进行。也就是说它可以让不在同一台计算机但通过网络连接计算机上的进程进行通信。也因为这样,套接字明确地将客户端和服务器区分开来。 二、套接字的属性 套接字的特性由3个属性确定,它
资源详情
资源评论
资源推荐
Linux进程间通信进程间通信——使用流套接字使用流套接字
前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进
程,也是可以是通过网络连接起来的不同计算机上的进程。通常我们使用socket进行网络编程,这里将会简单地讲述如何使用
socket进行简单的网络编程。
一、什么是一、什么是socket
socket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发工作既可以在本地单机
上进行,也可以跨网络进行。也就是说它可以让不在同一台计算机但通过网络连接计算机上的进程进行通信。也因为这样,套
接字明确地将客户端和服务器区分开来。
二、套接字的属性二、套接字的属性
套接字的特性由3个属性确定,它们分别是:域、类型和协议。
1、套接字的域、套接字的域
它指定套接字通信中使用的网络介质,最常见的套接字域是AF_INET,它指的是Internet网络。当客户使用套接字进行跨网络
的连接时,它就需要用到服务器计算机的IP地址和端口来指定一台联网机器上的某个特定服务,所以在使用socket作为通信的
终点,服务器应用程序必须在开始通信之前绑定一个端口,服务器在指定的端口等待客户的连接。另一个域AF_UNIX表示
UNIX文件系统,它就是文件输入/输出,而它的地址就是文件名。
2、套接字类型、套接字类型
因特网提供了两种通信机制:流(stream)和数据报(datagram),因而套接字的类型也就分为流套接字和数据报套接字。
这里主要讲流套接字。
流套接字由类型SOCK_STREAM指定,它们是在AF_INET域中通过TCP/IP连接实现,同时也是AF_UNIX中常用的套接字类
型。流套接字提供的是一个有序、可靠、双向字节流的连接,因此发送的数据可以确保不会丢失、重复或乱序到达,而且它还
有一定的出错后重新发送的机制。
与流套接字相对的是由类型SOCK_DGRAM指定的数据报套接字,它不需要建立连接和维持一个连接,它们在AF_INET中通
常是通过UDP/IP协议实现的。它对可以发送的数据的长度有限制,数据报作为一个单独的网络消息被传输,它可能会丢失、复
制或错乱到达,UDP不是一个可靠的协议,但是它的速度比较高,因为它并一需要总是要建立和维持一个连接。
3、套接字协议、套接字协议
只要底层的传输机制允许不止一个协议来提供要求的套接字类型,我们就可以为套接字选择一个特定的协议。通常只需要使用
默认值。
三、套接字地址三、套接字地址
每个套接字都有其自己的地址格式,对于AF_UNIX域套接字来说,它的地址由结构sockaddr_un来描述,该结构定义在头文件
sys/un.h中,它的定义如下:
struct sockaddr_un{
sa_family_t sun_family;//AF_UNIX,它是一个短整型
char sum_path[];//路径名
};
对于AF_INET域套接字来说,它的地址结构由sockaddr_in来描述,它至少包括以下几个成员:
struct sockaddr_in{
short int sin_family;//AF_INET
unsigned short int sin_port;//端口号
struct in_addr sin_addr;//IP地址
};
而in_addr被定义为:
struct in_addr{
unsigned long int s_addr;
};
四、基于流套接字的客户四、基于流套接字的客户/服务器的工作流程服务器的工作流程
使用socket进行进程通信的进程采用的客户/服务器系统是如何工作的呢?
1、服务器端、服务器端
weixin_38692202
- 粉丝: 3
- 资源: 952
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MySQL查询语句常见操作语句格式代码.docx
- mysql基本查询语句学习.doc
- mysql查询语句汇总基本语法.doc
- 图片.pdf
- Lsky-pro的token获取程序
- ABAQUS混凝土本构曲线数据(C25、C30、C35、C40、C45、C50...)
- 基于Python Flask框架的金融项目设计源码
- Campus一款简单的后台管理系统,RuoYi-Vue简单版,快速开发框架,适合大学生开发毕设,或其他小项目。使用Spring
- 一个Vue3 Ts Node.js的通用后台管理系统后端
- 1.实现定义学生成绩记录,记录包括字段有:序号、学生姓名、学号、课程名称、成绩。 2.实现学生成绩管理系统的菜单管理功能,允许
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0