WinSock palīdzība

Vieta, kur parunāt par to, kas nav atsevišķi izdalīts augstāk
Message
Author
CodeWolf
Posts: 119
Joined: 10 Dec 2010, 19:10
Location: LV-Riga-Marupe

Re: WinSock palīdzība

#21 Post by CodeWolf » 01 Oct 2011, 12:30

Nezinu , iedomajos ka tas kautkada veidā varēt nokart serveri..+ veel tas ka es no servera katram klientam aizsutu viņa ID...
//OpenGL

CodeWolf
Posts: 119
Joined: 10 Dec 2010, 19:10
Location: LV-Riga-Marupe

Re: WinSock palīdzība

#22 Post by CodeWolf » 03 Oct 2011, 19:36

emm radās 1 neliela problēmiņa, kā lai katram klientam nosuta atsevišķi savu sutijumu un nolasa to no katra klienta...
itka meiģinaju

Code: Select all

for(int i=0;i!=100;i++)
{
char...
Recive(...
memcpy(....
}
bet tad ir ta ka pirmais klients suta datus lidz biridim kad piesledzas vina vieta kads cits.. (velak 1ma vietu ieņem nakamais untt);
:?
//OpenGL

snake5
Posts: 361
Joined: 07 Dec 2010, 03:54
Contact:

Re: WinSock palīdzība

#23 Post by snake5 » 03 Oct 2011, 21:38

Ieteiktu nesteigties notikumiem pa priekšu un vispirms izveidot normālu savienojumu sistēmu, kur vairāki klienti var pieslēgties pie viena servera. Kad to dabūsi gatavu, tad gan jau būs skaidrs, kā tikt galā ar šo problēmu.

CodeWolf
Posts: 119
Joined: 10 Dec 2010, 19:10
Location: LV-Riga-Marupe

Re: WinSock palīdzība

#24 Post by CodeWolf » 03 Oct 2011, 22:16

Nū tas jau itka ir izdarīts.. vismaz uz doto brīdi serverim var pieslegties vairaki klienti (nezinu cik maksimali )+ samera normali....
testeju uz vairakiem pc...un itka savienojums bija stabils..:/
//OpenGL

snake5
Posts: 361
Joined: 07 Dec 2010, 03:54
Contact:

Re: WinSock palīdzība

#25 Post by snake5 » 04 Oct 2011, 12:11

Kad klienti pieslēdzas, tev viņiem jāiedod ID, kuru klienti pievienos visam, ko sūtīs, lai serveris varētu to ID nolasīt no sūtījuma un saprast, par kuru klientu iet runa.

CodeWolf
Posts: 119
Joined: 10 Dec 2010, 19:10
Location: LV-Riga-Marupe

Re: WinSock palīdzība

#26 Post by CodeWolf » 27 Oct 2011, 23:26

Nu ja nemaldos tad tadu funkciju pilda
šis kods...

Code: Select all

while(1)
	{
	for(int i = 0; i < 100; i ++)
	{
			if(Clients < 100)
			{
				int so2len = sizeof(i_sock2);
				sock2[Clients] = accept(sock, (sockaddr *)&i_sock2, &so2len);
				if(sock2[Clients] == INVALID_SOCKET)
				continue;
				printf("Piesledzas^ID %d \n",Clients);
				
				
				Clients++;
				
				continue;
			}
			else
			{
				break;
			}
			//return 1;
			send_inID = Clients;
		}
	}
	_endthread();
	
Man nav ne jausmas ka lai talak dara..
(Speletajs nosuta poziciju serverim)kur serveris atlasa visus id neskaitot sutitaja un suta citiem klientiem..) kaut kā tā?
//OpenGL

User avatar
Arrovs
Posts: 107
Joined: 09 Dec 2010, 18:09
Location: Saldus-Jelgava

Re: WinSock palīdzība

#27 Post by Arrovs » 31 Oct 2011, 16:51

Nosūtītā informācija ir jāatgriež arī sūtītāj klientam, jo klients sūta pieprasījumu izmaiņām(vismaz tā ir loģiski, ja nevēlies blēžus), serveris apstrādā un, ja nesūtīs sūtītājam, sūtītājs paliks vecajās koordinātēs.
Arrovs vēl joprojām dzīvs.

CodeWolf
Posts: 119
Joined: 10 Dec 2010, 19:10
Location: LV-Riga-Marupe

Re: WinSock palīdzība

#28 Post by CodeWolf » 31 Oct 2011, 17:13

gadījumā nebūs tieši otrādāk?
ja speletājs aizsuta tagadējos datus.. (ir mainijis pozicijas un saņem atpakaļ savas iepriekš sūtitās kuras to noved atpakaļ pie koardinatām kuras aizsutija iepriekš)? :)

|
v
Image
//OpenGL

User avatar
Arrovs
Posts: 107
Joined: 09 Dec 2010, 18:09
Location: Saldus-Jelgava

Re: WinSock palīdzība

#29 Post by Arrovs » 01 Nov 2011, 03:42

Tu nosūtīsi nevis koordinātas serverim, bet pieprasījumu pārvietot varoni x,y virzienā. Serveris jau zin tavas vecās koordinātes, tad pārvieto tevi par piem. 10x un aizsūta jaunās koordinātes gan tev gan pārējiem klientiem, kur atliek to nomainīt vizuāli.
Klients ir hakojams. Tavā gadījumā klients var pateikt, ka pārvietojas ar gaismas ātrumu, jo neviens to nekontrolē.
Arrovs vēl joprojām dzīvs.

Tenjou
Posts: 34
Joined: 23 Dec 2010, 10:33

Re: WinSock palīdzība

#30 Post by Tenjou » 01 Nov 2011, 13:18

Serverim, atbilde ir jāsūta tikai gadījumos, ja spēle ir click-to-move, kur servera pusē rēķina pathfindingu. Savādākos gadījumos(piem. wow), serveris nesūtis pozīcijas atpakaļ sūtītājam, bet diskonektos lietotāju, ja uzskatīs šo par krāpnieku.

Post Reply

Return to “Programmēšana / Programming”