欢迎使用CSDN-markdown编辑器

来源:互联网 发布:算法工程师专业 编辑:程序博客网 时间:2024/06/05 07:01

网络编程

1.客户机/服务器模式

客户机/服务器模式在操作过程中采用的是主动请求的方式。

服务器

1.打开通信通道并告知本地机主,它愿意在某一地址和端口上接收客户请求。
2.等待客户请求到达该端口。
3.接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一个新的进程(或线程)来处理这个客户请求。新进程(或线程)处理此客户请求,并不需要对其他请求做出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。
4.返回第二步,等待另一客户请求。
5.关闭服务器。

客户方:

1.打开通信通道,并连接到服务器所在主机的特定端口。
2.向服务器发送服务请求报文,等待并接收应答;继续提出请求。
3.请求接收后关闭通信通道并终止。

2.Windows Sockets 的实现

套接字类型:流式套接字(SOCK_STREAM)、数据报套接字(SOCKET_DGRAM)、原始套接字(SOCK_RAW)。

基于TCP(面向连接)的socket编程

服务器端的流程:

1.创建套接字(socket)。
2.将套接字绑定到一个本地地址和端口上(bind)。
3.将套接字设置为监听模式,准备接收客户请求(listen)。
4.等待客户请求的到来;当请求到来后,接收连接请求,返回一个新的对应于此次连接的套接字(accept)。
5.用返回的套接字和客户端进行通信(send/recv)。
6.返回,等待另一个客户的请求。
7.关闭套接字。

客户端程序流程:

1.创建套接字(socket)。
2.向服务器发出连接请求(connect)。
3.和服务器端进行通信(send/recv)。
4.关闭套接字。

基于UDP(面向无连接)的socket编程

服务器端(接收端)的流程:

1.创建套接字(socket)。
2.将套接字绑定到一个本地地址和端口上(bind)。
3.等待接收数据(recvfrom)。
4.关闭套接字。

客户端(发送端)程序流程:

1.创建套接字(socket)。
2.向服务器发送数据(sendto)。
3.关闭套接字。