对于使用socket进行网络编程说起来还是有规律可循的,弄懂了其模式流程,你感觉也就是那个样。学习socket网络编程时弄通几个小例程对以后的学习是有很大的帮助的。
下面给出流式套接字的编程流程:
先从服务器端说起。服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
对于基于UDP协议的socket编程模型服务端不需要有listen()和accept()过程,服务端和客户端是对等的,在用socket()建立套接字后就可以使用sendto()和recvfrom()收发数据了。
下面给出一个完整的socket编程的服务端和客户端的例程,注意里面的防错检查程序的编写很重要,不能少。最后不要忘记关闭socket和清理网络库!!
服务端:
#include<Winsock2.h>
#include<stdio.h