У меня был компьютер с Windows, подключенный к моему Linux-серверу python.Windows select() только принимает, не отправляет
Сервер работает очень хорошо для пользователей Linux, но я хочу, чтобы он работал и в Windows. Я сделал некоторые исследования и выяснили, что select.select() функция на Windows, работает без стандартного ввода конвейеру, но когда я делаю это, он не отправляет данные на сервер, только получает.
Код:
__author__ = 'root'
import socket
import datetime
import getpass # Get username
import sys
import threading
import thread
import select
def client():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
address = "192.168.1.17"
sock.bind((str("192.168.1.231"), int(2222)))
sock.connect(("192.168.1.17", int(23657)))
sock.setblocking(0)
sock.send(getpass.getuser()+"[$ID$]zivofek")
socket_list = [sys.stdin, sock]
partner = raw_input("Chat partner: ")
while 1:
try:
message = raw_input()
sock.sendall(message)
data = sock.recv(1024)
print data
except:
continue
def get_time():
return datetime.datetime.strftime(datetime.datetime.now(), '%H:%M:%S')
def main():
client()
if __name__ == "__main__":
main()
Любая идея, как сделать оба приема и отправки в то же время в Windows?
'select' сам по себе ничего не посылает. Вы имеете в виду, что вы не получаете «записи»? Опять же, размещение кода, который показывает проблему, является лучшим вариантом. –
Фактически - у меня нет клиентского кода в окнах. Я в основном хочу, чтобы клиент мог получать и отправлять на сервер .. каким-либо образом. В python он работал с простым выбором - когда он записывается, когда он читается, читается. Я ищу способ реализовать его в окнах, но мне удалось сделать только одно, а не то, и другое. –
Выполнена функция python 'socket.sendall()'? –