模拟服务端:
# -*- encoding: utf-8 -*-
"""
@project = imooc_pythonSpider
@file = socket_server
@auther = ztt
@create_time = '2019/4/15 14:56'
"""
# socket服务端
import socket
server = socket.socket()
# 绑定到0.0.0.0:8000端口上
server.bind(('0.0.0.0', 8000))
# 监听
server.listen()
# 阻塞等待连接
sock, addr = server.accept()
# data += tmp_data.decode("utf8")
data = ""
while True:
# recv方法是阻塞的
sock.send("Welcome to server!".encode("utf8"))
tmp_data = sock.recv(1024)
print(tmp_data.decode("utf8"))
input_data = input()
sock.send(input_data.encode("utf8"))
# if tmp_data:
# if tmp_data.decode("utf8").endswith("#"):
# break
# else:
# break
# print(data)
# sock.close()
# -*- encoding: utf-8 -*-
"""
@project = imooc_pythonSpider
@file = socket_server
@auther = ztt
@create_time = '2019/4/15 14:56'
"""
# socket服务端
import socket
import threading
server = socket.socket()
# 绑定到0.0.0.0:8000端口上
server.bind(('0.0.0.0', 8000))
# 监听
server.listen()
def handl_sock(sock, addr):
while True:
# recv方法是阻塞的
tmp_data = sock.recv(1024)
print(tmp_data.decode("utf8"))
input_data = input()
sock.send(input_data.encode("utf8"))
# 获取客户端连接并启动线程去处理
while True:
# 阻塞等待连接
sock, addr = server.accept()
# 启动一个线程去处理新的用户连接
cilent_thread = threading.Thread(target=handl_sock, args=(sock, addr))
cilent_thread.start()
模拟客户端:
# -*- encoding: utf-8 -*-
"""
@project = imooc_pythonSpider
@file = sockt_client
@auther = ztt
@create_time = '2019/4/15 15:01'
"""
# socket客户端
import socket
client = socket.socket()
client.connect(("192.168.25.1", 8000))
# 当输出完成以后,以#结尾就代码提交完成
server_data = client.recv(1024)
print("server response:{}".format(server_data.decode("utf8")))
while True:
input_data = input()
# client.send(b"stromztt")
client.send(input_data.encode("utf8"))
server_data = client.recv(1024)
print("server response:{}".format(server_data.decode("utf8")))
# client.close()
效果: