|
Mr.Pihto ↓
|
 |
|
22 Ноябрь, 2009, 04:09:03
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
решил написать клиент-сервер на питоне. Однако меньше писанины получилось чем на C++
клиент
import socket
while 1:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("127.0.0.1", 7500))
buf = raw_input('->Server ')
sock.send(buf)
result = sock.recv(1024)
print "Server: ", result
sock.close()
сервер
import socket, threading
class MyThread(threading.Thread):
def __init__(self, sock, addr):
self.sock = sock
self.addr = addr
threading.Thread.__init__(self)
def run ( self ):
buf = self.sock.recv(1024)
print "Client: ", buf
self.sock.send(buf)
self.sock.close()
srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
srv.bind(("127.0.0.1", 7500))
srv.listen(5)
while 1:
sock, addr = srv.accept()
MyThread(sock,addr).start()
но тут есть какаято трабла.. например при дисконекте клиента сервер какуюто ошибку пишет.
завтра попробую разобраться
Спустя 1 минуту добавил зы сервер как вы можете заметить много поточный:)
а изза этого собственно и трабла.. завтра... Спустя 24 секунды добавил ну уже точнее сёдня)
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
22 Ноябрь, 2009, 11:02:02 , спустя 6 часов 52 минуты 59 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: Санитары Карма: не нужна
Сообщений: 17221 Сила слова: 1.65
|
крут )
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
22 Ноябрь, 2009, 11:24:35 , спустя 22 минуты 33 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 339
Сообщений: 19712 Сила слова: 1.72
|
ну нормальная обработка дисконнектов - дело тонкое :)
пока на грабли 100 раз не наступишь в этом деле, не поймешь :) Спустя 17 секунд добавил вот клиентский сокет всегда знает что его отбросило а серверный ... не всегда)
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
Mr.Pihto ↓
|
 |
|
22 Ноябрь, 2009, 12:17:15 , спустя 52 минуты 40 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
да точно. код ошибки 10054 - WSACONNECTRESET - Connection reset by peer
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
22 Ноябрь, 2009, 01:02:30 , спустя 45 минут 15 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
вот сделал. по команде exit со стороны сервера клозится сокет ну и поток завершается. да и вообще теперь все более правильно, т.к. в примере выше на каждую мессагу создаётся поток :) а тут создаётся поток на целую сессию месаг и в клиенте на каждую мессагу новый сокет был... а терь 1 на сессию
клиент
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("127.0.0.1", 7500))
while 1:
buf = raw_input('->Server ')
sock.send(buf)
result = sock.recv(1024)
print "Server: ", result
sock.close()
сервер
import socket, threading
class MyThread(threading.Thread):
def __init__(self, sock, addr):
self.sock = sock
self.addr = addr
threading.Thread.__init__(self)
def run ( self ):
while 1:
buf = self.sock.recv(1024)
if buf=='exit':
break
print "Client: ", buf
self.sock.send(buf)
self.sock.close()
srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
srv.bind(("127.0.0.1", 7500))
srv.listen(5)
while 1:
sock, addr = srv.accept()
MyThread(sock,addr).start()
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
22 Ноябрь, 2009, 01:28:10 , спустя 25 минут 40 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 339
Сообщений: 19712 Сила слова: 1.72
|
ужас)
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
Troy ↓
|
 |
|
22 Ноябрь, 2009, 01:39:26 , спустя 11 минут 16 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи Карма: 43
Сообщений: 2254 Сила слова: 1.91
|
phpdude, напиши ему на C#, пусть знает что такое красивый язык))
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
22 Ноябрь, 2009, 01:48:03 , спустя 8 минут 37 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
на этом красивом языке раза в 2 больше кода получится)
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
22 Ноябрь, 2009, 01:48:19 , спустя 16 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 339
Сообщений: 19712 Сила слова: 1.72
|
на этом красивом языке раза в 2 больше кода получится)
колво не главный показатель
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
22 Ноябрь, 2009, 01:48:58 , спустя 39 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5184 Сила слова: 1.81
|
помоему ты перемудрил с while 1
хоть бы там задержка какая была чтоли...
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
phpdude ↓
|
 |
|
22 Ноябрь, 2009, 01:52:10 , спустя 3 минуты 12 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 339
Сообщений: д-о-х-у-я! Сила слова: 1.72
|
помоему ты перемудрил с while 1
хоть бы там задержка какая была чтоли...
задержку создает srv.accept()
это подвешивает основной процесс до коннекта :)
так всегда пишется, ну только с одним условием
while(!this.disconnecting)
{
client = sock.accept();
}
чтобы при состоянии дропа соединений и закрытия сокета как бы не создавать дополнительных ошибок :)
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
22 Ноябрь, 2009, 02:04:38 , спустя 12 минут 28 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5184 Сила слова: 1.81
|
ништяк, осталось смирится с табами и можно изучать
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|
Mr.Pihto ↓
|
 |
|
22 Ноябрь, 2009, 02:23:17 , спустя 18 минут 39 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
я на телефон клиент скинул... прикольно :) только raw_input не работает почему то.. хотя из интерактивной консоли работает.. вобще я просто сделал так чтоб мессага слалась.. все работает )
Спустя 1 минуту 51 секунду добавил только сервер на C++ юзал ибо сервер на питоне чет не открывает порты :(
всмысле в роутере они открыты но когда чекаеш их то только под нагрузкой пишет что открыты.. так вот под С== сервером открыты а под питоном нет.. странно
|
|
|
|
|
Записан
|
|
|
|
|
Troy ↓
|
 |
|
22 Ноябрь, 2009, 02:23:28 , спустя 11 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи Карма: 43
Сообщений: 2254 Сила слова: 1.91
|
CTAPbIu_MABP, хм, явы уже мало ?
|
|
|
|
|
Записан
|
|
|
|
|
CTAPbIu_MABP ↓
|
 |
|
22 Ноябрь, 2009, 02:31:52 , спустя 8 минут 24 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
мавр
Группа: в ухо Карма: не нужна
Сообщений: 5184 Сила слова: 1.81
|
Troy, знаний много не бывает
|
|
|
|
|
Записан
|
java.lang.OutOfMemoryError
|
|
|
|