1、服务器代码如下:
import socket
import threading
bind_ip = '127.0.0.1'
bind_port = 9999
#定义使用协议为TCP
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#配置监听IP和端口
server.bind((bind_ip,bind_port))
#设置最大监听连接数为5
server.listen(5)
print('[*]Listening on %s:%d' % (bind_ip,bind_port))
#获取接收数据函数
def handle_client(client_socket):
#打印出客户端发送得到的内容
request = client_socket.recv(1024)
print('[*]Received:%s'% request)
#返还一个数据包
client_socket.send('ACK!'.encode())
#关闭链接
client_socket.close()
while True:
#当一个客户端成功连接
#将收到的客户端套接字给client
#将远程连接细节给addr
client,addr = server.accept()
print('[*]Accepted connection from: %s:%d' % (addr[0],addr[1]))
#使用多线程,实现获取接收数据函数,并传入client参数
client_handler = threading.Thread(target=handle_client,args=(client,))
client_handler.start()
2、客户端代码如下:
import socket
target_host = '127.0.0.1'
target_port = 9999
#建立一个socket对象
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#连接服务器
client.connect((target_host,target_port))
#发送一些数据
client.send('GET / HTTP/1.1\r\nHost:baidu.com\r\n\r\n'.encode())
#接收一些数据
response = client.recv(4096).decode()
#打印接收到的数据
print(response)