Socket简介:
Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
- IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。
- 端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通讯前必须要分配一个没有被访问的端口号。
- 连接:指两个进程间的通讯链路。
socket()函数
Python 中,我们用 socket()函数来创建套接字,语法格式如下
socket.socket([family[, type[, proto]]])
实例(服务端和客户端聊天)
我们使用 socket 模块的 socket 函数来创建一个 socket 对象
先创建一个服务端
import socket
#创建服务套接字 serversocket
ss =socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print("创建服务套接字")
#服务套接字绑定主机,绑定端口号
ss.bind(("localhost",9999))
print("绑定端口和主机")
ss.listen(5)#限制访问人数
print("开始等待客户请求")
c=ss.accept();
print("某个客户连接到我了")
while True:
msg=c[0].recv(1024)
print(msg.decode())
接下来我们写一个简单的客户端实例连接到以上创建的服务。
客户端
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'))
然后运行服务端文件和客户端文件可以互相发送数据。
更多文章:点击这里
扫码关注公众号《后端开发ipoo》