c# - Issues with async receiving UDP Unicast packets in Windows Phone 7 -
i'm trying windows phone 7 mango app listen incoming udp packets having heck of time. have new beta 2 refresh of windows phone 7.1 sdk , dev tools installed. deviation try msdn sample results in socketexception 10022, "an invalid argument supplied".
my code pasted below. have been trying adapt code found on this stackoverflow post no avail. line generates exception when reached:
synchronous = m_udpsock.receivefromasync(udprecvarg);
i'm hoping here can identify what's going wrong. i'm calling "startunicastlisten()" when user presses button. m_udpsock defined class variable , set null. per "remarks" section of receivefromasync() msdn page, i've set of required properties , events.
private void startunicastlisten() { m_udpsock = new socket(addressfamily.internetwork, sockettype.dgram, protocoltype.udp); socketasynceventargs udprecvarg = new socketasynceventargs(); udprecvloopstart(udprecvarg); } private void udprecvloopstart(socketasynceventargs udprecvarg) { byte[] udprecvbuffer = new byte[2048]; udprecvarg.setbuffer(udprecvbuffer, 0, udprecvbuffer.length); udprecvarg.remoteendpoint = new ipendpoint(ipaddress.any, 11100); udprecvarg.completed += new eventhandler<socketasynceventargs>(udprecvarg_completed); udprecv(udprecvarg); } private void udprecv(socketasynceventargs udprecvarg) { bool synchronous = false; try { synchronous = m_udpsock.receivefromasync(udprecvarg); } catch (socketexception e) { log("recvudp()\n" + e.socketerrorcode + "\n" + e.tostring(), false); return; } if (synchronous) udprecvarg_completed(this, udprecvarg); } void udprecvarg_completed(object sender, socketasynceventargs udprecvarg) { endpoint udpep = udprecvarg.remoteendpoint; string msg = encoding.utf8.getstring(udprecvarg.buffer, udprecvarg.offset, udprecvarg.bytestransferred); log(udpep + " " + msg,false); udprecv(udprecvarg); }
there's such limited documentation proper usage of receivefromasync()--which seems option on wp7--and on system.net.sockets in windows phone 7 in general right now.
thanks in advance can provide.
i had same problem, here solution came with. wilbur4321 said, have send socket first. also, not need call sendtoasync , forget it, must wait (max of 1 second seems work me).
i not know why required this, sending (i send 1 byte: 0xff) seems trick.
Comments
Post a Comment