Posted on 2012-06-04 12:24
C小加 阅读(1741)
评论(0) 编辑 收藏 引用 所属分类:
网络编程
面向连接的Socket通信是基于TCP的。网络中的两个进程以客户机/服务器模式进行通信
服务器程序要先于客户机程序启动,每个步骤中调用的Socket函数如下:
(1)调用WSAStartup()函数加载Windows Sockets动态库,然后调用socket()函数创建一个流式套接字,返回套接字号s。
(2)调用bind()函数将套接字s绑定到一个已知的地址,通常为本地IP地址。
(3)调用listen()函数将套接字s设置为侦听模式,准备好接收来自各个客户机的连接请求。
(4)调用accept()函数等待接受客户端的连接请求。
(5)如果接收到客户端的请求,则accept()函数返回,得到新的套接字ns。
(6)调用recv()函数接收来自客户端的数据,调用send()函数向客户端发送数据。
(7)与客户端的通信结束后,服务器程序可以调用shutdown()函数通知对方不再发送或接收数据,也可以由客户端程序断开连接。断开连接后,服务器进程调用closesocket()函数关闭套接字ns。此后服务器程序返回第4步,继续等待客户端进程的连接。
(8)如果要退出服务器程序,则调用closesocket()函数关闭最初的套接字s。
客户端程序在每一步骤中使用的函数如下:
(1)调用WSAStartup()函数加载Windows Sockets动态库,然后调用socket()函数创建一个流式套接字,返回套接字号s。
(2)调用connect()函数将套接字s连接到服务器。
(3)调用send()函数向服务器发送数据,调用recv()函数接收来自服务器的数据。
(4)与服务器的通信结束后,客户端程序可以调用shutdown()函数通知对方不再发送或接收数据,也可以由服务器程序断开连接。断开连接后,客户端进程调用closesocket()函数关闭套接字。