|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 26, 2003 19:25:28 у меня клиент-серверная программа. у клиента 2 треда - один на работу с сетью, второй для оконного интерфейса у сервера - один тред для окна, один на входящие соединения, и еще столько же тредов сколько клиентов, подсоеденино. передача происходит так: клиент отсылает, сервер подтверждает каждый пакет, или соответственно наоборот, вообщем обычный send, recv. сокеты блокирующие. все бы ничего, но в один прекрасный момент, возникает такая ситуация: клиент что-то щлет или сервер что-то шлет, и пакет как будто ушел в сеть, и там устроил разгуляево, насколько я понимаю, пакет разбился на части, что не учтено в реализации клиента и сервака, и проги стоят на месте, что делать? (Чернышевский), кто виноват? может перейти на асинхронные сокеты? посоветуйте плиз. если кому-то надо могу кинуть энту кухню, но она на msvc.net 2003 извиняйте, если не мега дZен спасибо, что прочитали до этого места |
|
|
Дата: Ноя 26, 2003 19:33:22 jekyll 1. Отладчик (очень возможно, что это глюк в самом коде) 2. Сниффер (на всякий случай) У меня такое было: клиент на Java, сервер на асм. Долго ругал winsock, пока не обнаружил ошибку в коде сервера. |
|
|
Дата: Ноя 26, 2003 19:49:23 jekyll насколько я понимаю, пакет разбился на части, что не учтено в реализации клиента и сервака, и проги стоят на месте TCP - это stream-oriented сокет, я об этом уже говорил вот здесь. Пакеты могут резаться как угодно, поэтому надо реализовывать собственный протокол передачи и сборки пакетов. |
|
|
Дата: Ноя 26, 2003 20:01:01 |
|
|
Дата: Ноя 26, 2003 20:04:33 да забыл сказать. когда происходить какая-нить ошибка, об этом выдается сообщение, и тред завершает свою работу, но ошибки в сокетах не возникает, а я смотрел под Olly, и в сервере треды завершаются сами по себе, волшебство какое-то может бага не в сокетах (моей работы с ними), а реализации многопоточности??? |
|
|
Дата: Ноя 27, 2003 00:34:21 дык на TerminateThread ставим бряку и дальше смотрим стек... |
|
|
Дата: Дек 5, 2003 18:04:04 rst спасибо за сырец, я понял свои ошибки, все поправил, Работает!! Рулез! |
|
|
Дата: Дек 5, 2003 18:14:28 еще вопрос. как определить широковещательный адрес в данной подсети? броадкаст адрес используется также как и любой другой? где искать ? SNMP? |
|
|
Дата: Дек 6, 2003 10:53:30 ((Your IP) AND (NETMASK)) OR (0xFFFFFFFF AND (NOT) NETMASK) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.050 |