У меня есть код клиента, который будет работать на основном компьютере. Я использую docker для запуска кода моего сервера. Но когда я запускаю свой серверный код, я не вижу, была ли выполнена какая-либо работа. Я печатаю результаты на экране, чтобы увидеть, были ли предприняты действия.
client.py
import socket
import time
def send_message(message):
client_socket = ""
print(message)
try:
host = "127.0.0.1" # as both code is running on same pc
port = 5050
# time.sleep(15)
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # instantiate
client_socket.connect((host, port)) # connect to the server
client_socket.send(str(message).encode())
# get_message = client_socket.recv(1024).decode()
# print(get_message)
# if get_message == 'True':
# client_socket.close()
# return True
# else:
# client_socket.close()
# return False
return True
except ConnectionResetError as e:
client_socket.close()
print(e)
return False
except Exception as error:
client_socket.close()
print(error)
if __name__ == "__main__":
print(send_message("Test Message"))
Server.py
#!/usr/bin/env python
import socket
import time
def app_server_program(server_socket):
connection = ""
try:
while True:
print("dinleme basladı")
connection, address = server_socket.accept() # accept new connection
# time.sleep(5)
# receive data stream. it won't accept data packet greater than 1024 bytes
data = connection.recv(1024).decode()
print(data)
connection.close()
if data:
print("dataJson")
except Exception as error:
print(error)
# app_server_program(server_socket)
def socket_connect():
# get the hostname
print("51")
host = "0.0.0.0"
port = 5003 # initiate port no above 1024
# time.sleep(5)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # get instance
# look closely. The bind() function takes tuple as argument
server_socket.bind((host, port)) # bind host address and port together
# configure how many client the server can listen simultaneously
server_socket.listen()
print("60")
app_server_program(server_socket)
if __name__ == "__main__":
print("asfasd")
# time.sleep(5)
socket_connect()
My server.py и коды client.py такие же, как написанные выше.
Dockerfile
FROM python:3.6.5
COPY . /docker-socket
WORKDIR /docker-socket
CMD ["python3", "__init__.py"]
это файл dockerfile, который я использую.
docker run -p 5050:5003 <container-name>
Я запускаю docker в форма. Но я не вижу сообщение, которое я отправил на cmd. Случайно на server.py
print(datajson)
Когда я пишу неправильный код, я вижу отправленное сообщение и результат других функций печати. Но чтобы увидеть эти сообщения, мне нужно запустить файл client.py более одного раза. Есть ли шаг, который я сделал неправильно?