The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Especial Fóruns > IP Networking
.
google unix.com



IP Networking Saiba o TCP / IP, Internet Protocol, Routing, Routers, protocolos de rede UNIX e Linux neste fórum.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Script número de arquivos recebidos hootdocta5 Programação Shell Script e 5 03-19-2009 10:19
Info req: / var / adm / messages - Kern.warning - ID diferentes mensagens Petrucci Sun Solaris 1 12-04-2008 01:30
executar um script de receber e-mail jojo77 UNIX para Dummies Perguntas & Respostas 7 02-22-2008 01:48
Verificar e-mails recebidos para o sendmail kingdbag UNIX para Dummies Perguntas & Respostas 1 01-25-2007 11:32
rlogin / rsh próxima porta andryk Alto Nível de programação 1 08-17-2004 11:21

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 04-01-2009
charlitos charlitos is offline
Usuário
  
 

Join Date: Feb 2009
Posts: 1
Unhappy manuseamento mensagens recebidas

Tenho alguns clientes conectando ao servidor (que está a usar seleccione ()) e Theyre tentando enviar mensagens uns aos outros. Como posso esperar pela entrada em stdin e, ao mesmo tempo eu esperar por dados a serem enviados a partir do servidor? Devo usar select () no meu cliente também? Como exatamente embora?
  #2 (permalink)  
Old 04-14-2009
sneakyimp sneakyimp is offline
Usuário
  
 

Join Date: Apr 2009
Lugares: 14
Eu não sou exatamente certo o que sua pergunta está perguntando, mas parece que você está lutando com o fato de que você precisa de um loop de ouvir conexões com a escolha para o cliente em seu servidor, mas você também precisa fazer trabalho útil. Do mesmo modo, no seu cliente, pode ser necessário ouvir para entrada de usuário, mas ao mesmo tempo para esperar respostas do servidor.

Eu não sei o idioma que você está usando, mas eu tenho feito isso em PHP que coloca uma fina capa ao redor do soquete relacionados com chamadas de sistema para que elas são bastante semelhantes. Você geralmente precisa decidir se a fazer uma escolha () chamada bloqueio ou não. se não é o bloqueio, talvez você esteja girando no seu principal loop, chamando repetidamente escolha () sem nenhum resultado e ainda mastigação até muito tempo da CPU.

Você pode decidir sobre um tempo em que seleccionar () blocos de 100 milissegundos sobefore ou decidir que não há dados e continuar a executar outro código. Isso tende a prejudicar o desempenho da sua aplicação, porque pode haver coisas que você deveria ir enquanto o seu aplicativo está dormindo.

Se é isso que a pergunta é sobre, você pode querer verificar em tornar a sua aplicação multi-threaded (ou multiprocessamento). Este conceito poderia aplicar-se tanto ao servidor e cliente. Você pode manter o seu principal discussão trabalham longe e delegar a pedido I / O para separar uma discussão e deixar o sistema operacional cuida de toda a programação. Os I / O thread irá fila de todas as I / O e os principais pedidos discussão será devidamente serviço deles, entregando-os de volta para o I / O thread quando eles estão completos. Infelizmente, ainda estou olhando para roscar mim para que eu possa não ser de muito mais ajuda. Pode chegar um pouco peludo quando você lidar com multiprocessamento multithreading ou porque você tem que cuidar de coisas como race conditions, deadlock, E uma série de outros problemas relacionados a concorrência.
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 04:04.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0