URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3221
[ Назад ]

Исходное сообщение
"Глюки с сокетом"

Отправлено Elf , 29-Июл-04 13:01 
Здравствуйте все!
Кто мне подскажет:
создаю серверный TCP STREAM сокет, соединение, обмен инфой, и тут начинают в буффере появляться посторонние символы. В зависимости от сообщения сервера разные, но абсолютно левые. Например 'б%!'. Это я +- пропускаю но на строку "$AGENCЮжный Двор\n\0" в канал ВСЕГДА попадает EOF и соединение разлетается. Что это и как с этим бороться?

Содержание

Сообщения в этом обсуждении
"Глюки с сокетом"
Отправлено Vladislav Lazarenko , 29-Июл-04 16:08 
>Здравствуйте все!
>Кто мне подскажет:
>создаю серверный TCP STREAM сокет, соединение, обмен инфой, и тут начинают в
>буффере появляться посторонние символы. В зависимости от сообщения сервера разные, но
>абсолютно левые. Например 'б%!'. Это я +- пропускаю но на строку
>"$AGENCЮжный Двор\n\0" в канал ВСЕГДА попадает EOF и соединение разлетается. Что
>это и как с этим бороться?

Как ты пишешь ? Как ты читаешь ? Какую библиотеку при этом используешь ? Какая OS, compiler ? Неплохо бы все это указывать сразу + кусок кода, где, возможно, ты допустил ошибку.



"Глюки с сокетом"
Отправлено Elf , 29-Июл-04 20:38 
>Как ты пишешь ?
SendText (VCL)
> Как ты читаешь ?
read пока не \n
> Какую библиотеку при этом используешь ?
stdio+linuxовские glibc
> Какая OS, compiler ?
Linux 2.6.2, GNU Compiler Colection (gcc :)) 3
> Неплохо бы все это указывать
>сразу + кусок кода, где, возможно, ты допустил ошибку.
Код -- сложновато. Мне бы знать, как удержать соединение от EOFа, так оно разрывается: LOG: unexcpected EOF on client connection...


"Глюки с сокетом"
Отправлено Vladislav Lazarenko , 30-Июл-04 12:40 
>>Как ты пишешь ?
>SendText (VCL)
>> Как ты читаешь ?
>read пока не \n
>> Какую библиотеку при этом используешь ?
>stdio+linuxовские glibc
>> Какая OS, compiler ?
>Linux 2.6.2, GNU Compiler Colection (gcc :)) 3
>> Неплохо бы все это указывать
>>сразу + кусок кода, где, возможно, ты допустил ошибку.
>Код -- сложновато. Мне бы знать, как удержать соединение от EOFа, так
>оно разрывается: LOG: unexcpected EOF on client connection...

Use read/write.


"Глюки с сокетом"
Отправлено Elf , 30-Июл-04 13:28 

>Use read/write.

;) А как ещё?
Вобщем проблему я почти решил
Дело в том что я читал из сокета фразу, а \0 к ней не добавлял. Поэтому иногда фукции строк просто вываливались в Segmentation Fault, а так как это демон, то ети надписи уходили и /dev/null(причем очень даже успешно).
Спасибо всем, кто отозвался!


"Глюки с сокетом"
Отправлено n1Xm4n , 03-Авг-04 15:20 
>Здравствуйте все!
>Кто мне подскажет:
>создаю серверный TCP STREAM сокет, соединение, обмен инфой, и тут начинают в
>буффере появляться посторонние символы. В зависимости от сообщения сервера разные, но
>абсолютно левые. Например 'б%!'. Это я +- пропускаю но на строку
>"$AGENCЮжный Двор\n\0" в канал ВСЕГДА попадает EOF и соединение разлетается. Что
>это и как с этим бороться?


A xuli borotza? buffer-to ne initzializirovan, tama ne to 4to 'b%', s i slovo 'XUY' mojet okazat'sa:=).
1). char *buff=NULL;
2). memset(&buff, 0, sizeof(buff));
3). bzero(&buff, sizeof(buff));
- vibiray luboe.


"Глюки с сокетом"
Отправлено squirL , 03-Авг-04 17:00 
>>Здравствуйте все!
>>Кто мне подскажет:
>>создаю серверный TCP STREAM сокет, соединение, обмен инфой, и тут начинают в
>>буффере появляться посторонние символы. В зависимости от сообщения сервера разные, но
>>абсолютно левые. Например 'б%!'. Это я +- пропускаю но на строку
>>"$AGENCЮжный Двор\n\0" в канал ВСЕГДА попадает EOF и соединение разлетается. Что
>>это и как с этим бороться?
>
>
>A xuli borotza? buffer-to ne initzializirovan, tama ne to 4to 'b%', s
>i slovo 'XUY' mojet okazat'sa:=).
>1). char *buff=NULL;
>2). memset(&buff, 0, sizeof(buff));
>3). bzero(&buff, sizeof(buff));
> - vibiray luboe.

первое особенно рулит :) после него делаешь read в этот buff и прога падает в core...
так что не выбирать следует не любое... :)


"Глюки с сокетом"
Отправлено Vladislav Lazarenko , 03-Авг-04 17:08 
>>Здравствуйте все!
>>Кто мне подскажет:
>>создаю серверный TCP STREAM сокет, соединение, обмен инфой, и тут начинают в
>>буффере появляться посторонние символы. В зависимости от сообщения сервера разные, но
>>абсолютно левые. Например 'б%!'. Это я +- пропускаю но на строку
>>"$AGENCЮжный Двор\n\0" в канал ВСЕГДА попадает EOF и соединение разлетается. Что
>>это и как с этим бороться?
>
>
>A xuli borotza? buffer-to ne initzializirovan, tama ne to 4to 'b%', s
>i slovo 'XUY' mojet okazat'sa:=).
>1). char *buff=NULL;
>2). memset(&buff, 0, sizeof(buff));
>3). bzero(&buff, sizeof(buff));
> - vibiray luboe.

"Гениально" .... ГГГ