服务器端
1. 创建套接字对象
socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.AF_INET: 服务器之间通信使用IPV4
socket.SOCK_STREAM: 流式socket - TCP
2. 绑定本地地址,地址用元组来表示,包含2个元素(IP和PORT)
socket.bind(adress Tuple)
3. 开始监听
socket.listen()
4. 不断的接受客户端的连接请求
socket.accept()
5. 接收客户端传来的数据,发送给对方数据
socket.recv()
socket.sendall()
6. 传输完毕之后,关闭套接字
socket.close()
案例:
import socket
# 1. 创建套接字对象
# socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# socket.AF_INET: 服务器之间通信使用IPV4
# socket.SOCK_STREAM: 流式socket - TCP
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2. 绑定本地地址,地址用元组来表示,包含2个元素(IP和PORT)
# socket.bind(adress Tuple)
address = ("localhost", 9000)
s.bind(address)
# 3. 开始监听
# socket.listen()
s.listen()
# 4. 不断的接受客户端的连接请求
# socket.accept()
while 1:
conn, clientAddress = s.accept()
print("%s:%d客户端连接成功" % clientAddress)
# 5. 接收客户端传来的数据,发送给对方数据
# socket.recv()
# socket.sendall()
while 1:
msg = conn.recv(1024)
print(msg.decode("utf8"))
conn.send(msg.upper())
if msg.decode("utf8") == "exit":
conn.close()
break
客户端1. 创建套接字对象
socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.AF_INET: 服务器之间通信使用IPV4
socket.SOCK_STREAM: 流式socket - TCP
2. 连接服务器
socket.connect(addressTuple)
3. 收发数据
socket.recv()
socket.sendall()
4. 传输完毕之后,关闭套接字
socket.close()
案例:
import socket
# 1. 创建套接字对象
# socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# socket.AF_INET: 服务器之间通信使用IPV4
# socket.SOCK_STREAM: 流式socket - TCP
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2. 连接服务器
# socket.connect(addressTuple)
serverAddress = ("101.91.150.147", 9000)
s.connect(serverAddress)
# 3. 收发数据
# socket.recv()
# socket.sendall()
while 1:
msg = input(">>: ").strip()
if len(msg) == 0:
continue
s.sendall(msg.encode("utf8"))
ret = s.recv(1024)
print(ret.decode("utf8"))
if ret.decode("utf8") == "EXIT":
break
# 4. 传输完毕之后,关闭套接字
# socket.close()
s.close()