Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: dbaniza в Feb 07, 2005, 11:01



Титла: server-client програма под С
Публикувано от: dbaniza в Feb 07, 2005, 11:01
Та идеята ми програмата да се състои от сървър и клиенти които се конектват към него. Знам че трябва да се отварят някакви сокет-и, да се слуша на някакви портове но не успях да намеря информация КАК всъщност се реализира това  :(
Имам още един въпрос: всяка сървърна програма ли може да работи с (x)inetd или трябва да се предприемат някакви модификации по кода?
Програмния език е C.
Благодаря предварително!


Титла: server-client програма под С
Публикувано от: the_real_maniac в Feb 07, 2005, 12:33
Потърси по фрее сървърите unix programming/socket и ще видиш колко информация има , да не говорим google.

http://docs.ludost.net/Programming/c_c++/

там има поне 3 книжки на бърз преглед , които ще ти свършат работа :) Успех.


Титла: server-client програма под С
Публикувано от: plamen_t в Feb 09, 2005, 10:26
Преди време и аз се занимавах със мрежово програмиране.
Най-хубавият български сайт, който намерих по темата е:

http://www.skullbocks.hit.bg/progc.html

Четеш документа, разбираш го и си готов за мрежово програмиране :)


Титла: server-client програма под С
Публикувано от: dbaniza в Feb 11, 2005, 21:35
Мерси за линка пламене - сайта наистина е доста добър (въпреки че е писан на 6ljokavica), сега си го изпринтих и почвам да го чета. Намерих обаче и една книжка в английските викикниги (така де wikibooks), където под примерения код за сървър пише следното:
Цитат
Note that this server can only accept one connection at a time, if you want to simultaneously handle multiple clients then you'll need to use forking off seperate processes to handle the connections.
Вярно ли е това - няма ли някакъв начин сървър да обслужва повече от един клиент без да създава нови процеси?

ПП: Сам си отговорих на въпроса за inetd/xinetd - нищо не трябва да променяш освен конфигурационните файлове на супер-демона


Титла: server-client програма под С
Публикувано от: rpetrov в Feb 12, 2005, 00:08
Цитат (dbaniza @ Фев. 11 2005,21:35)
... примерения код за сървър пише следното:
Цитат
Note that this server can only accept one connection at a time, if you want to simultaneously handle multiple clients then you'll need to use forking off seperate processes to handle the connections.
Вярно ли е това - няма ли някакъв начин сървър да обслужва повече от един клиент без да създава нови процеси?...

Е създаването на процес не е много страшно, както на някой други ОС.

Виж и функцията select().


Титла: server-client програма под С
Публикувано от: в Feb 12, 2005, 12:13
не съм голям специалист в мрежовото програмиране, но доколкото знам за да обслужва повече клиенти, сървъра или трябва да fork-ва нови процеси или да е multithreaded ;)


Титла: server-client програма под С
Публикувано от: в Feb 16, 2005, 13:00
с нишки наистина става по лесно ... стига с тия процеси моля ви се не живеем в 70те години.
защо да ползваме нишки а не процеси ?
при buffer overflow в дъщерен процес може главния процес да crashne наи малкото т.е. клиента може да ни преебе сървъра , апък при нишки винаги спира само нишката и сичко си бачка


Титла: server-client програма под С
Публикувано от: rpetrov в Feb 16, 2005, 14:36
Цитат (JOKe` @ Фев. 16 2005,13:00)
...
при buffer overflow в дъщерен процес може главния процес да crashne наи малкото т.е. клиента може да ни преебе сървъра , апък при нишки винаги спира само нишката и сичко си бачка

Това къде си го прочел ?