socket是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket是啥意思?相关的知识,希望对你有一定的参考价值。

socket(也叫套接字)最初是在Unix系统上开发的网络通信的接口。
后来微软等公司将它移植到了windows下,当然原来unix系统下的还是好用的。
对于socket可以这样理解:
它就是一个函数库,里面包括大量的函数和相应的数据结构,已经实现好了。
它支持网络通信。
程序开发人员可以通过阅读相关的函数文档,了解函数的使用方法,进行网络的编程。
两种形式的socket:流式套接字,对应与TCP协议。
数据报套接字,对应与UDP协议。
参考技术A SOCKET用于在两个基于TCP/IP协议的应用程序之间相互通信。最早出现在UNIX系统中,是UNIX系统主要的信息传递方式。在WINDOWS系统中,SOCKET称为WINSOCK。
两个基本概念:客户方和服务方。当两个应用之间需要采用SOCKET通信时,首先需要在两个应用之间(可能位于同一台机器,也可能位于不同的机器)建立SOCKET连接,发起呼叫连接请求的一方为客户方,接受呼叫连接请求的一方成为服务方。客户方和服务方是相对的,同一个应用可以是客户方,也可以是服务方。
在客户方呼叫连接请求之前,它必须知道服务方在哪里。所以需要知道服务方所在机器的IP地址或机器名称,如果客户方和服务方事前有一个约定就好了,这个约定就是PORT(端口号)。也就是说,客户方可以通过服务方所在机器的IP地址或机器名称和端口号唯一的确定方式来呼叫服务方。在客户方呼叫之前,服务方必须处于侦听状态,侦听是否有客户要求建立连接。一旦接到连接请求,服务方可以根据情况建立或拒绝连接。连接方式有两种,同步方式(Blocking)和(noBlocking).
客户方发送的消息可以是文本,也可以是二进制信息流。当客户方的消息到达服务方端口时,会自动触发一个事件(event),服务方只要接管该事件,就可以接受来自客户方的消息了。
参考技术B 回答

socket就是套接字,20A是 IP地址的端口号,套接字就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口

参考技术C socket 就是网络套接字了 网络编程中很多地方用到 参考技术D 套接字啦,用于操作网络中物理层以上,应用层以下的各个层。

man时括号里的数字是啥意思

man socket时,会显示socket(2),这个2是什么意思呢?它不是指有几个参数,而是表示socket的所在章节,2就是系统调用。具体如下:

1-commands

2-system calls

3-libray calls

4-special files

5-file formats and convertions

6-games for linux

7-macro packages and conventions

8-system management commands

9-其他

 

解释一下

1是普通命令

2是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

3是库函数,如printf,fread

4是特殊文件,也就是/dev下的各种设备文件

5是指文件的格式,比如passwd,就会说明这个文件中各个字段的含义

6是给游戏留的,又各游戏自己定义

7是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8是系统管理用的命令,这些命令只能由root使用,如ifconing

 

想要指定section就直接在man的后面加上数字,比如:

man 1 ls

man 3 printf

等等

对于像open,kill这种既有命令,又有系统调用的来说,

man open

则显示的是open(1),也就是从最前面的section开始,

如果想查看open系统调用的话,

就得man 2 open

以上是关于socket是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

java中的socket是啥意思?

socket是啥意思?

socket error是啥意思

Socket Error 10060 Connection timed out是啥意思?

windows sockets initialization failed是啥意思

socket接口是啥意思