1.  
  2. 主页
  3.  / 
  4. Python基础到高级
  5.  / 
  6. socket网络编程
  7.  / 
  8. server

server

Socket 介绍

Socket是网络编程的一个抽象概念。通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可。

Socket是操作系统提供的一个编程接口,并不一定需要TCP/IP网络

在socket里面有一个families的概念,简单介绍下几个常见的families

  • socket.AF_INET # IPv4
  • socket.AF_INET6 # IPv6
  • socket.AF_UNIX # unix domain socket(本地套接字)

除了上面的三个还有很多的families,但是其他的不是常用到

socket常用的传输方式

  • socket.SOCK_DGRAM # UDP
  • socket.SOCK_STREAM # TCP
  • socket.SOCK_RAW # 这种传输方式既不是TCP也不是UDP,它的传输需要用自己的用户空间封包

这是常见的三种传输方式,当然也还有其他的传输方式,但是很少用到

Socket TCP server/client

server

client的情况

listen 需要一个文件描述符

每个连接也对应一个文件描述符,因此accept客户端连接是不能使用之前的

在socket中当客户端主动断开连接的时候, server端是无法确认的,server端会将自动断开的client保持一种close_wait的状态一直等到系统回收的时候才会释放

在socket编程中有一个makefile方法,这个方法需要慎用,makefile是生成类文件对象的,当socket实例close的时候,socket是没有真正关闭的,只有当makefile的类文件对象全部close了以后,才会真正的close

  • so.getsockname() # 获取本地地址
  • so.getpeername() # 获取对端地址,也就是客户端地址

socket聊天室服务器,server端

更多方法自行百度

这篇文章对您有用吗?

我们要如何帮助您?

发表评论

邮箱地址不会被公开。 必填项已用*标注