Tapili
12.11.2005, 20:06
Hallo alle zusammen!
Ich probiere gerade was mit Sockets zu stande zu bringen. Ich will erstmal nur eine Verbindung mit nem IRC-Server herstellen. Das funktioniert, nur will dann bind() mir nicht gehorchen :mauer:
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
int main(int argc, char **argv)
{
int ircsocket, check;
struct sockaddr_in hostaddr, localaddr;
if(argc < 2)
{
printf("Usage: %s serveraddress\n", *argv);
return 1;
}
ircsocket = socket(AF_INET, SOCK_STREAM, 0);
if(ircsocket < 0)
printf("can't create socket\n");
else
printf("socket: created\n");
hostaddr.sin_family = AF_INET;
hostaddr.sin_port = htons(6667);
hostaddr.sin_addr.s_addr = inet_addr("irgendne ip-adresse");
check = connect(ircsocket, (struct sockaddr*) &hostaddr, sizeof(hostaddr));
if(check < 0) {
printf("connection failed\n");
perror("error ");
}
else
printf("connected\n");
hostaddr.sin_family = AF_INET;
hostaddr.sin_port = htons(0);
hostaddr.sin_addr.s_addr = inet_addr("84.140.146.62 meine ip");
check = bind(ircsocket, (struct sockaddr*) &localaddr, sizeof(localaddr));
if(check < 0) {
printf("bind() failed\n");
perror("error ");
}
else
printf("bind() works\n");
}
bind() spuckt nur das aus:
error: Cannot assign requested address.
Danke für eure Hilfe. Sitze schon seit längerem an dieser Sache und habe immer noch keine Lösung finden.
Tapili
Ich probiere gerade was mit Sockets zu stande zu bringen. Ich will erstmal nur eine Verbindung mit nem IRC-Server herstellen. Das funktioniert, nur will dann bind() mir nicht gehorchen :mauer:
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
int main(int argc, char **argv)
{
int ircsocket, check;
struct sockaddr_in hostaddr, localaddr;
if(argc < 2)
{
printf("Usage: %s serveraddress\n", *argv);
return 1;
}
ircsocket = socket(AF_INET, SOCK_STREAM, 0);
if(ircsocket < 0)
printf("can't create socket\n");
else
printf("socket: created\n");
hostaddr.sin_family = AF_INET;
hostaddr.sin_port = htons(6667);
hostaddr.sin_addr.s_addr = inet_addr("irgendne ip-adresse");
check = connect(ircsocket, (struct sockaddr*) &hostaddr, sizeof(hostaddr));
if(check < 0) {
printf("connection failed\n");
perror("error ");
}
else
printf("connected\n");
hostaddr.sin_family = AF_INET;
hostaddr.sin_port = htons(0);
hostaddr.sin_addr.s_addr = inet_addr("84.140.146.62 meine ip");
check = bind(ircsocket, (struct sockaddr*) &localaddr, sizeof(localaddr));
if(check < 0) {
printf("bind() failed\n");
perror("error ");
}
else
printf("bind() works\n");
}
bind() spuckt nur das aus:
error: Cannot assign requested address.
Danke für eure Hilfe. Sitze schon seit längerem an dieser Sache und habe immer noch keine Lösung finden.
Tapili