wie schon in einem anderen thema gepostet, würde ich gerne einen bot für flyff programmieren -> habe mich ein wenig eingelesen und bin jetzt von der idee abgekommen, weil ich wohl EINDEUTIG nicht annehernd genug erfahrung habe um so etwas in c++ realisieren.
Deswegen habe ich beschlossen einen Browsergamebot o.ä. mit c++ zu erstellen, sodass ich wenigstens ein bisschen umgang mit winsocks habe.
Ich habe mir eine grafische oberfläche mit der winapi erstellt(und das hat welch wunder auch funktioniert!).
Danach habe ich mich in der msdn und verschiedenen foren(ich benutze kein mvc/vc++ express) über winsocks informiert.
Per button click rufe ich diese funktion auf:
->der pc soll nur eine verbindung auf bauen
Code:
BOOL setupConnection(HWND hWnd,SOCKET sock){
const char szIPAddr[32] = {"178.63.1.69"};
static struct sockaddr_in sa;
WSADATA WSAData;
int iError;
if(iError = WSAStartup(MAKEWORD(2,0),&WSAData)){
MessageBox(0,_T("FEHLER bei WSAStartup"),0,0);
return true;
}else{
MessageBox(0,_T("WSA erfolgreich gestartet"),0,0);
}
//open socket
sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(sock == INVALID_SOCKET){
MessageBox(0,_T("Socket error...."),0,0);
closesocket(sock);
WSACleanup();
return true;
}else{
MessageBox(0,_T("Socket steht"),0,0);
}
//async hinzufügen-> block stoppen
if(SOCKET_ERROR == WSAAsyncSelect(sock,hWnd,WM_SOCKET_NOTIFY,FD_CONNECT|FD_READ)){
MessageBox(0,_T("Async error...."),0,0);
closesocket(sock);
WSACleanup();
}
//connect
sockaddr_in service;
sa.sin_family =AF_INET;
sa.sin_port =(80);
sa.sin_addr.S_un.S_addr =inet_addr(szIPAddr);
connect(sock,(SOCKADDR*)&sa,sizeof(sa));
if(WSAEWOULDBLOCK != (iError = WSAGetLastError())){
MessageBox(0,_T("Connect error...."),0,0);
closesocket(sock);
WSACleanup();
return true;
}
return true;
}
Hier wäre meine frage, wie kann ich das richtig in unicode umsetzen?
Code:
const char szIPAddr[32] = {"178.63.1.69"};
Code:
const TCHAR szIPAddr[32] = _T("178.63.1.69");
//egal das ist jetzt eher nebensächlich
laut msdn wird dann in WM_SOCKET_NOTIFY, FD_CONNECT ausgelöst.-> das kann icha uch bestätigen
Code:
case WM_SOCKET_NOTIFY:
WORD wEvent,wError;
wEvent = WSAGETSELECTEVENT(lParam);//events
wError = WSAGETSELECTERROR(lParam);//errors
switch(wEvent){
case FD_CONNECT:
if(wError){
MessageBox(0,_T("Connect error"),0,0);
return true;
}else{
MessageBox(0,_T("Verbunden"),0,0);
}
recv(sock,(char*)&response,100,MSG_PEEK);
break;
jmd ne idee woran das liegen könnte?
-> die ip existiert
MfG Lukas







