APP下载

Socket通信过程原理及相关系统调用

2015-08-04王进文

中国新技术新产品 2015年7期
关键词:网络通信

王进文

摘 要:通过介绍Socket的基本组成结构及其发挥的作用,论述Socket通信的整个过程并用C语言加以简要实现,以阐明Socket通信过程原理及相关系统调用。

关键词:Socket;网络通信;进程通信

中图分类号:TP311 文献标识码:A

1 Socket基本组成结构

Socket是相同主机进程之间或者不同主机进程之间进行通信的主流手段之一,两台计算机之间的网络通信可以通过在各自的系统中创建一个Socket,进而利用它来实现相互之间的通信。

那Socket究竟是什么呢?一个基本的Socket就是由本机IP,本机进程端口,目的IP,和目的进程端口,以及输入输出缓冲组成的一个数据结构。其中前四个属性分别用来标识本机信息和目的计算机的信息,输入输出缓冲用来暂存保存通信的数据。

2 Socket通信连接步骤

Socket连接建立之前主要进行两项工作,第一项是连接建立前的两个Socket的初始化工作,第二个是两台计算机通信时的“三路握手”。下面详细说明这两个过程(假设两台通信的计算机为客户端-服务器模型,调用中用到的参数,请自行查看相关API):

(1)两个Socket的初始化。

服务器端

首先,用C语言通过系统调用socket()函数来创建套接口。通过以下程序段便可以建立一个用TCP的Socket:

int listensockfd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)

其次,通过系统调用int bind ()函数来初始化Socket中的本地IP地址和本地端口号。通过以下语句,便可以初始化服务器端的Socket:

bind( listensockfd, (struct sockaddr*) &saServer, sizeof(saServer));

最后,我们通过系统调用listen()函数来将已经绑定了本机IP地址和程序端口号的Socket的状态由主动(positive)转换为被动(passive)(只有处于被动的Socket才会接受对方的信息)。并调用accept()函数来获取已经准备好的套接字准备收取数据。……

登录APP查看全文

猜你喜欢

网络通信
基于NoC架构的网络通信抗干扰方法研究
海上军用网络通信的安全控制技术
基于网络通信的智能照明系统设计
基于CAN总线的网络通信信道的建模与研究
移动计算机网络通信技术研究
计算机网络通信常见问题与技术发展研究
网络通信中信息隐藏技术的应用
基于网络通信的校园智能音箱设计
谈计算机网络通信常见问题及技术发展
汽车检测控制系统网络通信技术分析