Jump to content
bin

help ligaçao udp

Recommended Posts

bin

eu gostava de ligar a um servidor UDP

https://github.com/worldforge/ember/blob/master/src/services/metaserver/MetaserverService.cpp

mas ussando o mono (c#) sei ke talho que enviar "7" para receber uma resposta.

https://github.com/worldforge/metaserver/blob/master/src/protocol_instructions.h

o que esta mal deste codigo

http://paste.ubuntu.com/618432/


using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class UDPListener
{
private const int listenPort = 8453;
private const string site = "metaserver.worldforge.org";
public static int Main()

{
bool done = false;
UdpClient listener = new UdpClient(site,listenPort);
        byte[] bt=new byte[2];
        bt=Encoding.ASCII.GetBytes("7");
        Console.WriteLine(bt[0]);
        listener.Send(bt,1);
        Console.WriteLine(listener.Available);
        
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
string received_data;
byte[] receive_byte_array;
try
{
while (!done)
{
Console.WriteLine("Waiting for broadcast");
receive_byte_array = listener.Receive(ref groupEP);
Console.WriteLine("Received a broadcast from {0}", groupEP.ToString() );
received_data = Encoding.ASCII.GetString(receive_byte_array, 0, receive_byte_array.Length);
Console.WriteLine("data follows \n{0}\n\n", received_data);
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
listener.Close();
return 0;
}
} // end of class UDPListener        
    


Citação

A ironia é o primeiro indício de que a consciência se tornou consciente.

 

Share this post


Link to post
Share on other sites
bin

o programa fica muito tempo a espera de resposta do servidor e para para o programa desligo, pois não implementado algo que o faça desistir :) era para criar um cliente deste jogo em c#, uma grande aventura :D

já ficava contente se em Console.WriteLine(listener.Available); apareser  >1 significava que tinha dados para eu receber :P


Citação

A ironia é o primeiro indício de que a consciência se tornou consciente.

 

Share this post


Link to post
Share on other sites
bin




/*
  * https://github.com/sryan/metaserver-ng.git
  * 
  * meta server
  * o servidor e baseado em UDP protocol (nao nesesito perceber o protocolXD)
  * e ke e do estilo pergunta responde
  * Uses a host name and port number to establish a socket connection.*/


using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;

public class UDPListener
{
private const int listenPort = 8453;
private const string site = "metaserver.worldforge.org";
public static int Main()
{
UdpClient listener = new UdpClient(site,listenPort);// ligaçao do servidor
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any,0);//n sei 
	//comandos




	byte[,] bt=new byte[4,4]
	{
		{0,0,0,0},//
		{0,0,0,1},//
		{0,0,0,2},//
		{0,0,0,3}//
	};

	byte[] bt2=new byte[4]{0,0,0,0};


	int ns=0;

//	bt = BitConverter.GetBytes(we);
	Console.Write("lll ",bt2.Length);
	for (int i = 0; i < bt2.Length; i++) {

			Console.WriteLine(bt2[i]);		
	}
	int c=0;	
	bool t = true;

	for (int i = 0; i < bt2.Length; i++) {

			Console.Write(bt2[i]);

	}
	try

	{
		ns=listener.Send(bt2,bt2.Length);
		while (t & c<10) {

	Thread.Sleep(1000);
	Console.WriteLine("o numero de ;{0} e n bytes  enviados:{1}",listener.Available,ns);
			if (listener.Available >0 ) { t = false; }
			c++;
		}
	}
	catch (Exception e)
	{
		Console.WriteLine(e.ToString());
	}
byte[] receive_byte_array;
try
{


Console.WriteLine("groupEP value is {0}",groupEP.Address);				
Console.WriteLine("Ttl value is {0}",listener.Ttl);	
Console.WriteLine("Waiting for broadcast");
receive_byte_array= listener.Receive(ref groupEP);//nessesari
Console.WriteLine("Received a broadcast from. {0}", groupEP.ToString() );

		for (int i = 0; i < receive_byte_array.Length; i++) {
			Console.Write(receive_byte_array[i]);
		}	
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
listener.Close();
return 0;
}
} // end of class UDPListener






já conecta mas não estabeleçe negociações :P


Citação

A ironia é o primeiro indício de que a consciência se tornou consciente.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.