sockets - udp android server over wifi -


i have made program server android receiving udp packets c program client on wifi, problem can connect phone pc client through usb cable in order run application in phone . i'm newbie in android world, ask guide me on how set connection via wifi without using cable ?

help !

this server code :

package com.example.server_android;  import java.io.ioexception; import java.net.datagrampacket; import java.net.datagramsocket; import java.net.socketexception; import java.net.unknownhostexception;  import android.app.activity; import android.os.bundle; import android.util.log; import android.widget.edittext; import android.widget.textview;  public class server_android extends activity{      private final static int server_port = 1234;     public final static int receiving_timeout_server = 3000;     datagramsocket socket;     datagrampacket packetout;     datagrampacket packetin;     byte[] datain;     byte[] dataout;      /*android widgets*/     textview text;     edittext edit;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);          setcontentview(r.layout.activity_server_android);         //text = (edittext)findviewbyid(r.id.edittext1);         text =(textview)findviewbyid(r.id.textview2);            text.settext("");          /* thread receiving data client */         new thread(new receiver()).start();             try {            thread.sleep(500);         }catch(interruptedexception e){             log.e("udp", "udp receive failed!");         }     }      public class receiver implements runnable{          public void run(){              try {                  while(socket != null && !socket.isclosed()){              dataout = new byte[1024]; //          inetaddress fromaddress = inetaddress.getbyname("10.4.0.11");             socket = new datagramsocket(server_port);             socket.setsotimeout(receiving_timeout_server);             packetin = new datagrampacket(dataout,dataout.length);                        socket.receive(packetin);             text.append("source port :" + packetin.getport() + "\n");             text.append("source address :" + packetin.getaddress().tostring() + "\n");             log.d("udp", "packet receveid");                     string message = new string(packetin.getdata());             text.append(message +"\n"+ packetin.getport() +"\n"+ packetin.getaddress().tostring());             log.d("udp", "le message reçu");             log.d("message : ", "" + message);                       }             }             catch(unknownhostexception exc) {                 system.out.println("destinataire inconnu");             }             catch(socketexception exc) {                 system.out.println("probleme d'ouverture de la socket");             }             catch(ioexception exc) {                 system.out.println("probleme sur la reception du message");             }             }         }  } 

and client code : //----------------------------------------------------------------------------

#include "biblio.h"  #define portnumber 1234 int main(int argc,      char **argv) { //_________seting_destination_ip_adress____________________  in_addr_t ipaddress= inet_addr("10.4.0.156");  //---- create udp socket ---- int udpsocket=socket(pf_inet,sock_dgram,0); if(udpsocket==-1)   { perror("socket"); exit(1); }  struct sockaddr_in toaddr; int lenght = sizeof(toaddr);   // ... allowing broadcast (optional) int on=1;     if(setsockopt(udpsocket,sol_socket,so_broadcast,&on,sizeof(int))==-1)     { perror("setsockopt"); exit(1); }  int s; for(;;)   {   //---- read next line on standard input ----      char msg[0x100];   char *buffer = malloc(100);      if(!fgets(msg,0x100,stdin)) { break; }    //---- send message specified destination/port ----   bzero(&toaddr,lenght);       toaddr.sin_family=af_inet;   toaddr.sin_port=htons(portnumber);   toaddr.sin_addr.s_addr=ipaddress;   s = sendto(udpsocket,msg,strlen(msg),0,(struct sockaddr *)&toaddr,lenght);     printf("destination address %s -- port : %d ",inet_ntoa(toaddr.sin_addr),ntohs(toaddr.sin_port));   if( s == -1)     { perror("sendto"); exit(1); }  }  //---- close udp socket ---- close(udpsocket); return 0; }  //---------------------------------------------------------------------------- 

this log file :

 08-20 10:07:56.885: d/libegl(22622): loaded /system/lib/egl/libegl_mali.so     08-20 10:07:56.890: d/libegl(22622): loaded /system/lib/egl/libglesv1_cm_mali.so     08-20 10:07:56.895: d/libegl(22622): loaded /system/lib/egl/libglesv2_mali.so     08-20 10:07:56.900: d/(22622): device driver api match     08-20 10:07:56.900: d/(22622): device driver api version: 10     08-20 10:07:56.900: d/(22622): user space api version: 10      08-20 10:07:56.900: d/(22622): mali: revision=linux-r2p4-02rel0 build_date=mon mar  5 09:47:55 kst 2012      08-20 10:07:56.925: d/openglrenderer(22622): enabling debug mode 0     08-20 10:08:05.555: w/dalvikvm(22622): threadid=11: thread exiting uncaught exception (group=0x40a2d1f8)     08-20 10:08:05.570: e/androidruntime(22622): fatal exception: thread-1053     08-20 10:08:05.570: e/androidruntime(22622): android.view.viewrootimpl$calledfromwrongthreadexception: original thread created view hierarchy can touch views.     08-20 10:08:05.570: e/androidruntime(22622):    @ android.view.viewrootimpl.checkthread(viewrootimpl.java:4039)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.view.viewrootimpl.requestlayout(viewrootimpl.java:709)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.view.view.requestlayout(view.java:12675)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.view.view.requestlayout(view.java:12675)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.view.view.requestlayout(view.java:12675)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.view.view.requestlayout(view.java:12675)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.widget.relativelayout.requestlayout(relativelayout.java:268)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.view.view.requestlayout(view.java:12675)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.widget.textview.checkforrelayout(textview.java:6773)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.widget.textview.settext(textview.java:3306)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.widget.textview.settext(textview.java:3162)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.widget.textview.append(textview.java:2822)     08-20 10:08:05.570: e/androidruntime(22622):    @ android.widget.textview.append(textview.java:2812)     08-20 10:08:05.570: e/androidruntime(22622):    @ com.example.test_udp.mainactivity$receiver.run(mainactivity.java:70)     08-20 10:08:05.570: e/androidruntime(22622):    @ java.lang.thread.run(thread.java:856)     08-20 10:08:05.790: d/openglrenderer(22622): flushing caches (mode 0)     08-20 10:08:06.325: d/openglrenderer(22622): flushing caches (mode 1)     08-20 10:13:05.715: i/process(22622): sending signal. pid: 22622 sig: 9 

are sure when connected thru cable program works? not need check code, taking see in run method of thread, first line of code says: while (socket != null && !socket.isclosed()) both happen true way code written. doubt works wifi or cable.

i think should change thread's code this:

public void run() {     try     {         socket = new datagramsocket(server_port);         socket.setsotimeout(receiving_timeout_server);         dataout = new byte[1024];         // inetaddress fromaddress = inetaddress.getbyname("10.4.0.11");         packetin = new datagrampacket(dataout, dataout.length);         // keep receiving packets, until keepon set false         while (keepon)         {            socket.receive(packetin);            text.append("source port :" + packetin.getport() + "\n");            text.append("source address :" + packetin.getaddress().tostring() + "\n");            log.d("udp", "packet receveid");                    string message = new string(packetin.getdata());            text.append(message +"\n"+ packetin.getport() +"\n"+ packetin.getaddress().tostring());            log.d("udp", "le message reçu");            log.d("message : ", "" + message);                   }     }     catch (unknownhostexception exc)     {         system.out.println("destinataire inconnu");     }     catch (socketexception exc)     {         system.out.println("probleme d'ouverture de la socket");     }     catch (ioexception exc)     {         system.out.println("probleme sur la reception du message");     }     catch (exception exc)     {         exc.printstacktrace();     } } 

Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -