socket介绍

socket(简称 套接字)是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程通信

 

创建socket

import socket
socket.socket(Family,Type)

参数说明:

  • Family: 可以选择AF_INET(用于Internet进程间通信) 或者 AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF——INET
  • Type: 套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于TCP协议) 或者 SOCK_DGRAM (数据报套接字,主要用于UDP 协议)

 

import socket
#服务器
# 第一步:创建一个TCP的套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 第二步:绑定ip和端口:bind
sock.bind(('127.0.0.1', 7799))
print("TCP服务绑定的地址:127.0.0.1:7799")

# 第三步:开启监听
sock.listen(100)

# 第四步:等待客户端发起请求,建立连接
cil_sock, addr = sock.accept()
print("客户端{}建立了链接".format(addr))

# 第五步:接收客户端传递的数据(接收到的是二进制的数据)
content = cil_sock.recv(1024)
print("客户端发送过来的数据为:", content.decode())


# 第六步:给客户端返回数据
data = '恭喜你请求成功'.encode()
cil_sock.send(data)

# 关闭处理客户端会话的套接字
cil_sock.close()

# 关闭套接字
sock.close()
import socket
#客户端
# 第一步:创建一个TCP的套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 第二步:建立连接
sock.connect(('127.0.0.1', 7799))

# 第三步:往服务器发送数据
data = '你好服务端,我是旺旺'.encode()
sock.send(data)

# 第四步:接收服务器返回的数据
content = sock.recv(1024)
print(content.decode())