013
19.01.2004, 14:55 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
Variablen:
C++: |
static SOCKET sock; WSADATA wsa; static struct sockaddr_in sa;
|
asyncdaten:
C++: |
WORD wEvent=WSAGETSELECTEVENT(lParam); WORD wError=WSAGETSELECTERROR(lParam); switch(wEvent) { case FD_CONNECT: if(wError) { MessageBox(NULL,"Verbindung nicht möglich...","Fehler",MB_OK); closesocket(sock); WSACleanup(); return -1; } return 0; //Einkommende Daten verarbeiten case FD_READ: UINT r=recv(sock,(char*)&buf,sizeof(buf),0); buf[r]=0; MessageBox(NULL,buf,"Received",MB_OK); return 0; }
|
Socket erstellen:
C++: |
if(WSAStartup(MAKEWORD(2,0),&wsa) != 0) { MessageBox(NULL,"WSAStartup failed","Fehler",MB_OK); WSACleanup(); return -1; } //socket wird initialisiert sock=socket(AF_INET,SOCK_STREAM,0); if(sock==INVALID_SOCKET) { MessageBox(NULL,"Init error","Fehler",MB_OK); WSACleanup(); return -1; } //WSAAsyncSelect wird initalisiert um die verschiedenen Events festzulegen if(SOCKET_ERROR==WSAAsyncSelect(sock,hwnd,WM_SOCKET_NOTIFY,FD_CONNECT|FD_READ|FD_WRITE)) { MessageBox(NULL,"WSAAsyncSelect-Fehler","Fehler",MB_OK); closesocket(sock); WSACleanup(); return -1; } //Adressfamily,Port,und ip wird zugewiesen sa.sin_family=AF_INET; sa.sin_port=htons(6667); sa.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); //hier wird versucht zu verbinden mit dem server connect(sock,(SOCKADDR*)&sa,sizeof(sa));
|
-- class God : public ChuckNorris { }; |