Socket编程模型

  Socket,套接字就是两台主机之间逻辑连接的端点,其属于TCP/IP协议中的传输层协议,主要解决数据如何在网络中传输。而HTTP是应用层协议,主要解决如何包装数据(数据的格式化)。

  Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:

    1)连接使用的协议(TCP、UDP)

    2)本地主机的IP地址

    3)本地进程的协议端口

    4)远程主机的IP地址

    5)远程进程的协议端口。

  Socket整体流程如下图:
            

  sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字,具体编程步骤如下:

    服务器端编程的步骤:

      1:加载套接字库,创建套接字(WSAStartup()/socket());

      2:绑定套接字到一个IP地址和一个端口上(bind());

      3:将套接字设置为监听模式等待连接请求(listen());

      4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());

      5:用返回的套接字和客户端进行通信(send()/recv());

      6:返回,等待另一连接请求;

      7:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。
    客户端编程的步骤:

      1:加载套接字库,创建套接字(WSAStartup()/socket());

      2:向服务器发出连接请求(connect());

      3:与服务器端进行通信(send()/recv());

      4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

  示例代码如下:

    客户端:

            

    服务端:

            

            

  测试结果:

            

            

 

posted on 2024-06-03 12:45  池塘里洗澡的鸭子  阅读(4)  评论(0编辑  收藏  举报