The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Alto Nível de programação
.
google unix.com



Alto Nível de programação Post perguntas sobre C, C + +, Java, SQL, e outras linguagens de programação aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
problema com socket leitura swap007 UNIX & avançada para usuários experientes 2 05-21-2008 02:08
HTTP Keep-Alive soquete problema imdupeng Alto Nível de programação 0 03-29-2008 09:11
Conexão com X-win problema dragunu UNIX para Dummies Perguntas & Respostas 2 02-27-2007 10:21
Socket Problema Agent007 Alto Nível de programação 3 04-03-2004 09:15
[Problema] Reutilização porto em BSD soquete Nomeadamente Alto Nível de programação 1 11-28-2003 11:36

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-28-2007
Stevhp Stevhp is offline
Usuário
  
 

Join Date: Mar 2007
Posts: 9
Problema durante a conexão com soquete

Alguém pode ajudar? Estou tentando escrever um programa que irá escrever a um soquete. Eu posso fazer o servidor a correr, mas sempre aparece um erro quando tento conectar.

Dá-me um erro no "ligar" comando.

É provavelmente um simples erro, mas parece que não posso encontrá-lo.



# include <sys/socket.h>
# include <netinet/in.h>
# include <sys/types.h>
# include <string.h>
# include <stdio.h>
# include <unistd.h>

int main (int argc, char * argv []) (

int cessante, newSock, i;
struct sockaddr_in triste;
char buf;
char acção [255];
FILE * comando;

if (argc <4) (
printf ( "Errado argumentos da linha de comando");
return 1;
)

cessante \u003d socket (PF_INET, SOCK_STREAM, 0);
if (cessante \u003d\u003d -1) (
printf ( "Não foi possível criar socket");
return 1;
)

sad.sin_family \u003d AF_INET;
sad.sin_port \u003d atoi (argv [2]);
sad.sin_addr.s_addr \u003d inet_addr (argv [1]);

if (connect (cessante, (struct sockaddr *) & triste, sizeof (struct sockaddr_in)) \u003d\u003d -1) (
printf ( "Não é possível ligar ao endereço% s porta% s", argv [1], argv [2]);
return 1;
)

enviar (cessante, argv [3], strlen (argv [3]), 0);
while (recv (cessante, & buf, 1, 0))
printf ( "% c", buf);

return 0;

)
  #2 (permalink)  
Old 04-28-2007
porteiro porter is offline Forum Advisor  
Usuário
  
 

Join Date: Jan 2007
Posts: 2.965
Citação:
Originally Posted by Stevhp
sad.sin_family \u003d AF_INET;
sad.sin_port \u003d atoi (argv [2]);
sad.sin_addr.s_addr \u003d inet_addr (argv [1]);
Vamos tentar adivinhar um selvagem, você está usando uma máquina little-endian, como um x86?

unsigned short my_port \u003d atoi (argv [2]);

memset (& triste, 0, sizeof (triste));
sad.sin_family \u003d AF_INET;
sad.sin_port \u003d htons (my_port);
sad.sin_addr.s_addr \u003d inet_addr (argv [1]);

desde que ambos os portos e de acolhimento são numéricas, então use getservbyname e gethostbyname.
  #3 (permalink)  
Old 04-28-2007
Stevhp Stevhp is offline
Usuário
  
 

Join Date: Mar 2007
Posts: 9
Responder

Estou usando o Solaris.
  #4 (permalink)  
Old 04-29-2007
porteiro porter is offline Forum Advisor  
Usuário
  
 

Join Date: Jan 2007
Posts: 2.965
Citação:
Originally Posted by Stevhp
Estou usando o Solaris.
1. Isso não indica se é grande ou pequeno endian como Solaris é executado em ambos x86 e SPARC.

2. Coloque "perror (" Connect ") no caminho imediatamente após uma falha na ligação.

3. Do netstat-a na máquina de destino e confirmar que realmente há um LISTEN sobre o porto que você está tentando conectar-se.

4. antes de o ligar () faça o seguinte

printf ( "ligue (% s:% d) \ n",
inet_ntoa (sad.sin_addr), ntohs (sad.sin_port));
  #5 (permalink)  
Old 04-29-2007
manoj.rana manoj.rana is offline
Usuário
  
 

Join Date: Mar 2007
Posts: 16
socket erro

Oi,
além da anterior soluções dadas para u.
uma coisa que eu queira adicionar u se ainda estão enfrentando algum erro
em seguida, use estas opções no momento da compilação
-lnsl-lsocket-lresolv e espero então ur programa vai funcionar bem.
  #6 (permalink)  
Old 04-29-2007
reborg's Avatar
reborg reborg is offline Forum Staff  
Administrador
  
 

Join Date: Mar 2005
Localização: Irlanda
Mensagens: 4.242
Citação:
Originally Posted by manoj.rana
Oi,
além da anterior soluções dadas para u.
uma coisa que eu queira adicionar u se ainda estão enfrentando algum erro
em seguida, use estas opções no momento da compilação
-lnsl-lsocket-lresolv e espero então ur programa vai funcionar bem.
Por favor, siga as regras e utilização plena expressão. Cyberchat estilo de escrita não é permitido.
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 03:53.


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