WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  sockets & linux ;))

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   sockets & linux ;))
DEiL опубликован 14-09-2001 19:03 MSK   Click Here to See the Profile for DEiL   Click Here to Email DEiL  
типа... КАк работать с сокетами в линуксе?
то, что вместо SOCKET там int, вместо send вроде бы write, а connect, bind, recv и прочее есть. но млина, все структуры не те... полключаемые фалы левые какие-то... уууууууууу :(
так что если у кого-нибудь есть сорц \ знания - поделитесь плиз. от этого зависит судьба нации !!! :)
purpe опубликован 14-09-2001 22:23 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
я тебе в 1001 раз советую занятся тем примером из явы! я сам пытался сервак под линуксом на Си наваять - гиморное это занятие ... запаришься обработку ошибок писать :)

ты хоть представляешь - как там многопотоковость организуется ?

ну а если ты так упёрся, то штудируй упорно исходники апача, только ведь погрязнешь ты в нём :)

m_fox опубликован 15-09-2001 12:06 MSK     Click Here to See the Profile for m_fox  Click Here to Email m_fox     
Блин, ребята. Вам лень в заголовочные файлы заглядывать?
WINSOCK2.H (строка 85)
typedef u_int SOCKET;
WINSOCK2.H (строка 78)
typedef unsigned int u_int;

Во вторых стек TCP/IP Microsoft тупо взяла у BSD UNIX c незначительными изменениями, которые можно обойти с помощью #ifdef'ами.

По многопотоковасти:
с 60-х годов UNIX был многопотоковой и многопользовательской ОС, в отличии от Windows, к-рая стала многопотоковой в году 93-94-м.
В линуксе лучше использовать fork(), но и beginthread в Linux и в Windows пока еще никто не отменял.

Ну и не обязательно писать многопотоковые приложения. Можно обойтись неблокирующими сокетами. И функции Sleep() есть там и там.

Вполне лекго создавать портируемые сетевые консольные приложения на С для Windows и UNIX

DEiL опубликован 15-09-2001 14:19 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
yeah, I did it! ;)
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ioctl.h>

int main(int argc, char* argv[])
{
int listener;
sockaddr_in sin;
in_addr addr;
unsigned long argp;
int s1, connected;
sockaddr addr1;
listener = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
addr.s_addr = 0;
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr = addr;
sin.sin_port = htons(5051);
ioctl(listener,FIONBIO,&argp);
bind(listener,(struct sockaddr*) &sin,sizeof(sin));
listen(listener,10);
socklen_t addr_len = sizeof(addr1);

char *recieved = (char *)malloc(2);

while (true)
{
s1=accept(listener,&addr1,&addr_len);
if (s1 != -1)
{
connected = s1;
};
if (recv(connected,recieved,1,0)==1)
{
recieved[1] = NULL;
printf(recieved);
};
};
return 0;
}
-))

lamo опубликован 22-09-2001 15:55 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
нда.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.