Jump to content

Windows mobile wifi application


Recommended Posts

Guest umarzaman
Posted

<pre>hi

i have developed a windows mobile based client app ........ i only want to send a simple string to the server running on pc via wifi connection...........i have already written the code and abt 2 months back it was working fine on emulator.....but recently when i try to execute the code i didnt work on emulator nor on the device on which i deployed it..............when i press the login button the application does nothing.......and in the output screen i get....."The thread 0xb69a647e has exited with code 0 (0x0).".............it dnt send any data to the server.....but when i run the exe of the code in debug folder it works fine and sends data to the server..... i am so confused that if exe is sending data why isnt the data sent through emulator or mbl device ....i am posting the code below...any help would be much appricieated.....

using System;

using System.Linq;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Net;

using System.Net.Sockets;

namespace DSDC

{

enum Command

{

Login, //Log into the server

Logout, //Logout of the server

Message, //Send a text message to all the chat clients

List, //Get a list of users in the chat room from the server

Null //No command

}

public partial class Form1 : Form

{

public Socket clientSocket;

public EndPoint epServer;

public string strName;

int portnum = 0;

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void LOGIN_Click(object sender, EventArgs e)

{

strName = textBox1.Text;

portnum =Convert.ToInt32(textBox3.Text);

try

{

//Using UDP sockets

clientSocket = new Socket(AddressFamily.InterNetwork,

SocketType.Dgram, ProtocolType.Udp);

//IP address of the server machine

IPAddress ipAddress = IPAddress.Parse(textBox2.Text);

//Server is listening on port 1000

IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, portnum);

epServer = (EndPoint)ipEndPoint;

Data msgToSend = new Data();

msgToSend.cmdCommand = Command.Login;

msgToSend.strMessage = null;

msgToSend.strName = strName;

byte[] byteData = msgToSend.ToByte();

//Login to the server

clientSocket.BeginSendTo(byteData, 0, byteData.Length,

SocketFlags.None, epServer, new AsyncCallback(OnSend), null);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "SGSclient");

}

}//end of login button

private void OnSend(IAsyncResult ar)

{

try

{

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "SGSclient");

}

}//end of on send

}

class Data

{

//Default constructor

public Data()

{

this.cmdCommand = Command.Null;

this.strMessage = null;

this.strName = null;

}

//Converts the bytes into an object of type Data

public Data(byte[] data)

{

//The first four bytes are for the Command

this.cmdCommand = (Command)BitConverter.ToInt32(data, 0);

//The next four store the length of the name

int nameLen = BitConverter.ToInt32(data, 4);

//The next four store the length of the message

int msgLen = BitConverter.ToInt32(data, 8);

//This check makes sure that strName has been passed in the array of bytes

if (nameLen > 0)

this.strName = Encoding.UTF8.GetString(data, 12, nameLen);

else

this.strName = null;

//This checks for a null message field

if (msgLen > 0)

this.strMessage = Encoding.UTF8.GetString(data, 12 + nameLen, msgLen);

else

this.strMessage = null;

}

//Converts the Data structure into an array of bytes

public byte[] ToByte()

{

List<byte> result = new List<byte>();

//First four are for the Command

result.AddRange(BitConverter.GetBytes((int)cmdCommand));

//Add the length of the name

if (strName != null)

result.AddRange(BitConverter.GetBytes(strName.Length));

else

result.AddRange(BitConverter.GetBytes(0));

//Length of the message

if (strMessage != null)

result.AddRange(BitConverter.GetBytes(strMessage.Length));

else

result.AddRange(BitConverter.GetBytes(0));

//Add the name

if (strName != null)

result.AddRange(Encoding.UTF8.GetBytes(strName));

//And, lastly we add the message text to our array of bytes

if (strMessage != null)

result.AddRange(Encoding.UTF8.GetBytes(strMessage));

return result.ToArray();

}

public string strName; //Name by which the client logs into the room

public string strMessage; //Message text

public Command cmdCommand; //Command type (login, logout, send message, etcetera)

}

}</pre>

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.