WP7 Mango Sockets Entwicklung

Im aktuellen Stand ist es fast nicht möglich Chatclients für WP7 zu entwickeln. Nach vielen Post von Entwicklern hat Microsoft nachgebessert, und im Mango Update die Socket Netzwerkstruktur eingeführt. Im Blog von Mister Goodcat gibt es für Einsteiger einen kleinen Message Client/Server mit Sockets.

image

Abb.: Server Console

 

Es ist nun wirklich einfach mit einigen Zeilen Code eine Socket Kommunikation aufzubauen:

// create endpoint
var ipAddress = IPAddress.Parse(host);
var endpoint = new IPEndPoint(ipAddress, port);

// convert text to send (prefix with length)
var message = string.Format("{0};{1}", Message.Text.Length, Message.Text);
var buffer = Encoding.UTF8.GetBytes(message);

// create event args
var args = new SocketAsyncEventArgs();
args.RemoteEndPoint = endpoint;
args.Completed += SocketAsyncEventArgs_Completed;
args.SetBuffer(buffer, 0, buffer.Length);

// create a new socket
var socket = new Socket(AddressFamily.InterNetwork,
    SocketType.Stream,
    ProtocolType.Tcp);

// connect socket
bool completesAsynchronously = socket.ConnectAsync(args);

// check if the completed event will be raised.
// if not, invoke the handler manually.
if (!completesAsynchronously)
{
    SocketAsyncEventArgs_Completed(args.ConnectSocket, args);
}

private void SocketAsyncEventArgs_Completed(object sender, SocketAsyncEventArgs e)
{
    // check for errors
    if (e.SocketError != SocketError.Success)
    {
        Dispatcher.BeginInvoke(() => MessageBox.Show("Error during socket operation: "
            + e.SocketError));

        // do some resource cleanup
        CleanUp(e);
        return;
    }

    // check what has been executed
    switch (e.LastOperation)
    {
        case SocketAsyncOperation.Connect:
            HandleConnect(e);
            break;
        case SocketAsyncOperation.Send:
            HandleSend(e);
            break;
    }
}

Hier nun die Client Ansicht im Phone 7 Emulator:

image

 

Sehr schön gelungen finde ich auch das Flussdiagramm dieser Implementierung:

image

Quelle:

GoodCat
Advertisements

About pocketmobile

Window Phone Developer

One response to “WP7 Mango Sockets Entwicklung”

  1. Quality Function Deployment says :

    Great ideas!! Awesome post. Not too many people realize how valuable this information is. I found your site through Yahoo.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: