网络与通信:网络编程(概念)

计算机网络技术是互联网发展的基础。它是计算机技术与通信技术结合的产物,是现在信息技术的一个重要组成部分,而且正朝着数字化、高速化、智能化的方向迅速发展。随着3G、4G技术的兴起,越来越多的企业参与到了网络与通信相关的行业的角逐,网络与通信相关的行业的角逐,网络与通信成为信息化浪潮的先锋。而对于网络相关技术的考察也越来越受到各大IT企业的重视。

  • 如何使用Socket编程
  • 阻塞模式和非阻塞模式有什么区别

如何使用Socket编程

socket在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有socket接口的计算机通信,应用程序在网络上传输、接收的信息都通过这个socket接口来实现。

socket通信原理如下:服务器端实现监听连接,客户端实现发送连接请求,建立连接后,发送和接收数据进行通信。
(1)服务器端建立一个Socket,设置好本机的IP和监听的端口并与Socket进行绑定,开始监听连接请求
(2)当接收到连接请求后,发送确认,同客户端建立连接,开始与客户端进行通信。同时客户端建立一个Socket,设置好服务器端的IP和提供服务的端口,发出连接请求,接收到服务的确认后,尽力连接,开始与服务器进行通信。 服务器端和客户端的连接及它们之间的数据传送均采用同步方式

网络与通信:网络编程(概念)_第1张图片

在服务器端有一个控制台程序(或者Windows服务)与多个客户端程序通信,其中主线程有一个Socket绑定在一个固定端口上,负责监听客户端的Socket信息。每当启动一个客户端程序,客户端发送来一个Socket连接请求,服务器段就新开启一个线程,并在其中创建一个Socket与该客户端的Socket通信,直到客户端程序关闭,结束该线程,主线程中的Socket在应用程序退出时关闭。

阻塞模式和非阻塞模式有什么区别

使用Socket编程实现数据传输的过程,通常的默认设置假设套接字是阻塞的。每一个TCP套接字有一个发送缓冲区,当应用进程调用write操作时,内核从应用进程的缓冲区中复制数据到套接字的发送缓冲区。如果套接字的发送缓冲区无法完全容纳应用程序的所有数据,即应用进程的缓冲区大于套接字发送缓冲区或套接字发送缓冲区还有其他数据,应用进程将会被挂起,内核将不从write系统调用返回,直到应用进程缓冲区中的所有数据都复制到套接字发送缓冲区。因此,从写一个TCP套接字的write调用成功返回仅仅表示可以重新使用应用进程的缓冲区,它并不表示对端的应用进程以及接收到了数据。


网络与通信:网络编程(概念)_第2张图片

你可能感兴趣的:(socket,网络编程,阻塞模式,非阻塞模式)