Guten Tag,
Ich habe mich begonne, mit Winsock zu beschäftigen. Ich möchte gerne via Winsock auf einen IRC server verbinden. Mit diesem Code komme ich nicht auf den Server drauf:
Ich weiss, dass noch vieles fehlt wie z.b "Ping" und "pong". Aber rein theoretisch sollte ich schonmal connecten können, auch wenn es mich schnell wieder raushauen wird.
vielleicht weiss einer von euch rat.
mfg alien
Ich habe mich begonne, mit Winsock zu beschäftigen. Ich möchte gerne via Winsock auf einen IRC server verbinden. Mit diesem Code komme ich nicht auf den Server drauf:
Code:
// winsock_rl.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <winsock.h>
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "winmm.lib")
int startWinsock(void);
int main()
{
long rc;
SOCKET s;
SOCKADDR_IN addr;
char buf[256] = {0};
char buf2[256] = {0};
rc=startWinsock();
if(rc!=0)
{
printf("Fehler: startWinsock, fehler code: %d\n",rc);
system ("PAUSE");
return 1;
}
else
{
printf("Winsock gestartet!\n");
}
s=socket(AF_INET,SOCK_STREAM,0);
if(s==INVALID_SOCKET)
{
printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
return 1;
}
else
{
printf("Socket erstellt!\n");
}
memset(&addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten
addr.sin_family=AF_INET;
addr.sin_port=htons(6667);
addr.sin_addr.s_addr=inet_addr("irc.de.quakenet.org");
rc=connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
if(rc==SOCKET_ERROR)
{
printf("Fehler: connect gescheitert, fehler code: %d\n",WSAGetLastError());
system ("PAUSE");
return 1;
}
else
{
printf("Verbunden");
}
system ("PAUSE");
return 0;
}int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa);
}
long getAddrFromString(char* hostnameOrIp, SOCKADDR_IN* addr)
{
long rc;
unsigned long ip;
HOSTENT* he;
if(hostnameOrIp==NULL || addr==NULL)
return SOCKET_ERROR;
ip=inet_addr(hostnameOrIp);
if(ip!=INADDR_NONE)
{
addr->sin_addr.s_addr=ip;
return 0;
}
else
{
he=gethostbyname(hostnameOrIp);
if(he==NULL)
{
return SOCKET_ERROR;
}
else
{
memcpy(&(addr->sin_addr),he->h_addr_list[0],4);
}
return 0;
}
}
Ich weiss, dass noch vieles fehlt wie z.b "Ping" und "pong". Aber rein theoretisch sollte ich schonmal connecten können, auch wenn es mich schnell wieder raushauen wird.
vielleicht weiss einer von euch rat.
mfg alien
Zuletzt bearbeitet: