Network Programming(二)
Client/server communication 客户端/服务器通信
服务器:
被动地等待和响应客户
passive socket客户端:
开始通信
必须知道服务器的地址和端口
active socket功能说明:
–指定本地和远程通信端点
–启动连接
–等待传入连接
–发送和接收数据
–正常终止连接
–错误处理Network API
api:application programming interface 应用程序接口
API是由程序系统提供的一组功能/服务。Network API:
服务(通常由操作系统提供)
提供应用程序和协议软件之间的接口有各种各样的应用程序接口可用于TCP / IP :
Sockets by Berkeley
XTI (X/Open Transport Interface) by AT&T
Winsock -Windows Sockets API by Microsoft
MacTCP/ Open Transport by Apple
Sockets
- 用于通信的编程接口
- 提供此服务的一组原语
- 通用•可以适应不同的通信需求
- 独立的特定网络或协议,•最初在4.2BSD系统中开发用于因特网通信,于1983年发布。
- 不需要使用网络进行通信•本地机器通信:Unix域
套接字:
–应用程序进程发送和接收数据的入口点
–唯一标识通过
互联网地址
端到端协议(例如,TCP或UDP )
端口号
两种类型的( TCP/IP )套接字
—流套接字/连接模式(例如使用TCP )
提供可靠的字节流服务
—数据语法套接字/非连接模式(例如使用UDP )
提供尽力而为的数据报服务
最多65.500字节的消息
套接字用于客户端/服务器通信
套接字的使用方法如下:
每个应用程序:
创建一个套接字–想法:两个应用程序之间的通信将通过一个将两个套接字连接在一起的假想“管道”进行。
关闭一个socket套接字服务器: 将其套接字绑定到一个已知的地址
- 客户端:找到服务器套接字(通过其已知的地址)并与服务器“发起通信”