Thread View: pl.comp.os.linux.programowanie
5 messages
5 total messages
Started by Hadrian Lutogniewski
Thu, 09 Sep 1999 19:14
TCP/IP jako plik w C
Author: Hadrian Lutogniewski
Date: Thu, 09 Sep 1999 19:14
Date: Thu, 09 Sep 1999 19:14
21 lines
1073 bytes
1073 bytes
A Hoj,
Co trzeba zrobic, aby uruchomic klienta TCP/IP w C tak, aby komunikacja
odbywala sie tak, jak pisanie/czytanie z pliku tzn.:
#include <tcp_lib.h> /* nawet nie wiem w jakiej bibliotece tego szukac */
int f;
f = opentcp ("www.onet.pl",http); /* lub opentcp ("194.204.191.30",80); */
if f<0 then error;
write (f,fbuf,n_bytes);
reads (f,fbuf,n_bytes);
closetcp (f);
Bede wdzieczny za wszelkie podpowiedzi
Hadrian
--
Hadrian Lutogniewski
call: +48 604 444 369
mailto: hadrian@beer.com
Re: TCP/IP jako plik w C
Author: Krzysztof Krzyżaniak
Date: Thu, 09 Sep 1999 20:45
Date: Thu, 09 Sep 1999 20:45
43 lines
2367 bytes
2367 bytes
Pewnego dnia, a było to 9 Sep 1999 19:14:40 GMT przyszła do mnie
wiadomość od <hadrian@Leon.mat.uni.torun.pl> i powiedziała:
>A Hoj,
>
>Co trzeba zrobic, aby uruchomic klienta TCP/IP w C tak, aby komunikacja
>odbywala sie tak, jak pisanie/czytanie z pliku tzn.:
Generalnie poszukaj sobie w info libc na temat programowania socketów:
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
int make_socket(uint16_t port){
sock = socket (PF_INET, SOCK_STREAM, 0);
if (sock < 0){
perror ("socket");
exit (EXIT_FAILURE);
}
/* Give the socket a name. */
name.sin_family = AF_INET;
name.sin_port = htons (port);
name.sin_addr.s_addr = htonl (INADDR_ANY);
if (bind (sock, (struct sockaddr *) &name,sizeof (name)) < 0){
perror ("bind");
exit (EXIT_FAILURE);
}
return sock;
}
Funkcja zwraca deskryptor gniazdka, które możesz wykorzystać w funkcjach
open, write itp. Polecam `Programowanie zastosowań sieciowych w systemie
Unix' R.W. Stevens.
eloy
--
* Krzysztof `eloy' Krzyżaniak * HP -> http://www.pawnhearts.eu.org/~eloy/
* <eloy@pawnhearts.eu.org> * KabaretLoza44 -> http://loza44.topnet.pl/
* PH Member * Rock -> http://wwwv.venco.com.pl/~eloy/muzyka/
Życie jest średnie, ani dobre, ani złe... (MZ)
Re: TCP/IP jako plik w C
Author: Bohdan R. Rau
Date: Fri, 10 Sep 1999 11:49
Date: Fri, 10 Sep 1999 11:49
63 lines
2444 bytes
2444 bytes
Dnia 9 września 1999 o godzinie 19:14:40 GMT Hadrianowi
Lutogniewskiemu wpadło na myśl aby napisać tak:
>
>Bede wdzieczny za wszelkie podpowiedzi
UWAGA! Procedura NIE JEST sprawdzona, przerobiłem na czuja procedurę
tconnect.c z pakietu icon.9.3/ipl! Oryginalna procedura działała.
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
FILE *tconnect(char *hostname, int port) /*: connect to TCP socket */
{
unsigned char *p;
int fd, i, d[4];
FILE *fp;
struct hostent *h;
struct sockaddr_in sin;
memset(&sin, 0, sizeof(sin));
/* get host address */
if (sscanf(hostname, "%d.%d.%d.%d", &d[0], &d[1], &d[2], &d[3]) == 4) {
p = (unsigned char *) &sin.sin_addr;
for (i = 0; i < 4; i++)
p[i] = d[i];
}
else {
h = gethostbyname(hostname);
if (!h) return 0;
memcpy(&sin.sin_addr, h->h_addr, sizeof(struct in_addr));
endhostent();
}
/* create socket and connect */
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) return 0;
if (connect(fd, (struct sockaddr *) &sin, sizeof(sin)) < 0) return 0;
/* create stdio file pointer */
return fdopen(fd, "r+");
}
Pozdrawiam
ethanak
http://ethanak.i.sex.pl
--
Gdyby Word zrzucał core, to mógłbyś pomylić kontrolkę "HDD"
z kontrolką "Power"
Radosław Gancarz
Re: TCP/IP jako plik w C
Author: Michal 'Azzazel' Pajak
Date: Fri, 10 Sep 1999 22:50
Date: Fri, 10 Sep 1999 22:50
12 lines
1121 bytes
1121 bytes
>Co trzeba zrobic, aby uruchomic klienta TCP/IP w C tak, aby komunikacja >odbywala sie tak, jak pisanie/czytanie z pliku tzn.: zerknij na http://cscene.oftheinter.net/ C-Scene Issue #05 "Tying Standard Input and Output to a Socket Connection" by Kyle R. Burton pozdrawiam aZZaZel
Re: TCP/IP jako plik w C
Author: Hadrian Lutogniewski
Date: Sat, 11 Sep 1999 12:47
Date: Sat, 11 Sep 1999 12:47
8 lines
779 bytes
779 bytes
Dziekuje za wszystkie podpowiedzi, a szczeglonie za link do cscene.org. Hadrian -- Hadrian Lutogniewski call: +48 604 444 369 mailto: hadrian@beer.com
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads