![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| 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 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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; ) |
|
||||
|
Citação:
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. |
|
||||
|
Citação:
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)); |
|
||||
|
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. ![]() |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|