Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <conio.h>
- #include <WinSock2.h>
- #pragma comment(lib,"Ws2_32.lib")
- #define czas 0
- int _tmain(int argc, _TCHAR* argv[])
- {
- WSADATA wsdata;
- int w= WSAStartup(MAKEWORD(2,2),&wsdata);
- if(w!=0)
- {
- printf("\nBlad inicjalizacji biblioteki winsock");
- getch();
- return 1;
- }
- SOCKET tcpp[5]; ///TABLICA SOCKETÓW
- for(int i=0;i<5;i++)
- tcpp[i]=socket(AF_INET,SOCK_STREAM,0); /// DEFINICJA SOKETÓW
- if(tcpp[0]==INVALID_SOCKET)
- {
- printf("\nBlad socketa");
- getch();
- return 1;
- }
- sockaddr_in pol,skad;
- pol.sin_addr.s_addr=inet_addr("10.10.100.102"); // MY WPISUJEMYN A SZTYWNO
- pol.sin_family=AF_INET;
- pol.sin_port=htons(27015);
- u_long tryb=1;
- for(int i=0;i<5;i++)
- ioctlsocket(tcpp[i],FIONBIO,&tryb); //USTALAMY, ¯E GNIAZDO JEST NIEBLOKUJ¥CE
- for(int i=0;i<5;i++)
- int c=connect(tcpp[i],(SOCKADDR*)&pol,sizeof(pol)); // KONEKTUJEMY WSZYSTKIE GNIAZDA
- fd_set set;
- int j=0;
- while(true)
- {
- timeval timeout={czas/1000,(czas%1000)*1000};
- FD_ZERO(&set);
- for(int i=0;i<5;i++)
- {
- if(tcpp[i]!=0)
- FD_SET(tcpp[i],&set); // USTALAM ZE MOZNA TAM dac selekt
- int wynik=select(FD_SETSIZE,NULL,&set,NULL,&timeout); // SELEKT PO WSYZSKTICH
- if(wynik>0)
- {
- for(int i=0;i<5;i++)
- {
- if(FD_ISSET(tcpp[i],&set)) //ODPALAMY WLASCIWE GNIAZDO I ALGORYTMY
- {
- char buf[1024]="";
- char ble[1024]="";
- printf("\nNawiazano polaczenie i mozna wysylac dane, Podaj dane:");
- gets(buf);
- int rozmiar=sizeof(buf);
- while(true)
- {
- if(send(tcpp[i],buf,strlen(buf)+1,0)==(strlen(buf)+1)) break; //wysla do skutku calosc!
- }
- printf("\nWyslalem\n");
- while(true) /// ODBIERA DO SKUTKU
- {
- if(recv(tcpp[i],ble,rozmiar,0)>0)
- {
- printf("\nOdebralem %s\n",ble);
- break;
- }
- }
- if(strcmp(ble,"=> exit")==0)
- {
- printf("\nOdebralem od serwera ""exit"" Koniec programu");
- closesocket(tcpp[i]);
- tcpp[i]=0;
- j++;
- break;
- }
- }
- }
- }
- if(j==5) break;
- }
- WSACleanup();
- getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement