一、套接字是什么?

  在Linux中一切皆文件,管道,匿名管道,命名管道,套接字等是各类进程通信所使用的工具,在Python中也可以这样理解,而socket套接字向网络发出请求或者应答网络请求,使主机间或同台计算机上的进程间可以通讯。它们在使用的时候都有‘创建’‘关闭’,可以将其理解为一个信息暂存的一个地方(工具),我要发消息的时候就打开,放信息,关闭,然后另一个程序通过监听,得知有信息来了,然后它去打开,读取消息,然后关闭这个暂存消息的工具。

二、套接字怎么样?  

  Python 提供了两个级别访问的网络服务。:

  • 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。
  • 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

三、socket函数。

.........略过,还是看一下代码。

服务端 sever.py

import socket
import sys

#创建socket对象
#AF_INET 的目的就是使用 IPv4 进行通信。
# 因为 IPv4 使用 32 位地址,相比 IPv6 的 128 位来说,计算更快,便于用于局域网通信。
#而且 AF_INET 相比 AF_UNIX 更具通用性,因为 Windows 上有 AF_INET 而没有 AF_UNIX。
#SOCK_STREAM提供面向连接的稳定数据传输,即TCP协议。SOCK_STREAM应用在C语言socket编程中,
# 在进行网络连接前,需要用socket函数向系统申请一个通信端口

serversocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#获取本主机名
host = socket.gethostname()

port = 9999

#绑定端口号
serversocket.bind((host,port))

#设置最大连接数,超过就排队
serversocket.listen(5)

while True:

    #建立客户端连接
    clientsocket,addr = serversocket.accept()

    print('连接地址:%s' %str(addr))

    msg = '欢迎访问本服务端!' + '\r\n'

    clientsocket.send(msg.encode('utf-8'))#encode字符串编码一哈,以免出现什么乱码
    clientsocket.close()

  客户端:client.py

import socket
import sys

#创建socket对象

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#获取本地主机名
host = socket.gethostname()

#设置端口号

port = 9999

#连接服务,指定主机和端口
s.connect((host,port))

#接收小于1024字节的数据
msg = s.recv(1024)

s.close()

print(msg.decode('utf-8'))

  在命令行启动sever.py,然后在另一个命令行窗口启动client.py,见下图

 

javascript套接字代码 套接字python_javascript套接字代码

运行一次client,sever就反应一次,这是简单的一个套接字实验。